cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

xfs_bmap_util.h (2686B)


      1// SPDX-License-Identifier: GPL-2.0
      2/*
      3 * Copyright (c) 2000-2006 Silicon Graphics, Inc.
      4 * All Rights Reserved.
      5 */
      6#ifndef __XFS_BMAP_UTIL_H__
      7#define	__XFS_BMAP_UTIL_H__
      8
      9/* Kernel only BMAP related definitions and functions */
     10
     11struct xfs_bmbt_irec;
     12struct xfs_extent_free_item;
     13struct xfs_ifork;
     14struct xfs_inode;
     15struct xfs_mount;
     16struct xfs_trans;
     17struct xfs_bmalloca;
     18
     19#ifdef CONFIG_XFS_RT
     20int	xfs_bmap_rtalloc(struct xfs_bmalloca *ap);
     21#else /* !CONFIG_XFS_RT */
     22/*
     23 * Attempts to allocate RT extents when RT is disable indicates corruption and
     24 * should trigger a shutdown.
     25 */
     26static inline int
     27xfs_bmap_rtalloc(struct xfs_bmalloca *ap)
     28{
     29	return -EFSCORRUPTED;
     30}
     31#endif /* CONFIG_XFS_RT */
     32
     33int	xfs_bmap_punch_delalloc_range(struct xfs_inode *ip,
     34		xfs_fileoff_t start_fsb, xfs_fileoff_t length);
     35
     36struct kgetbmap {
     37	__s64		bmv_offset;	/* file offset of segment in blocks */
     38	__s64		bmv_block;	/* starting block (64-bit daddr_t)  */
     39	__s64		bmv_length;	/* length of segment, blocks	    */
     40	__s32		bmv_oflags;	/* output flags */
     41};
     42int	xfs_getbmap(struct xfs_inode *ip, struct getbmapx *bmv,
     43		struct kgetbmap *out);
     44
     45/* functions in xfs_bmap.c that are only needed by xfs_bmap_util.c */
     46int	xfs_bmap_extsize_align(struct xfs_mount *mp, struct xfs_bmbt_irec *gotp,
     47			       struct xfs_bmbt_irec *prevp, xfs_extlen_t extsz,
     48			       int rt, int eof, int delay, int convert,
     49			       xfs_fileoff_t *offp, xfs_extlen_t *lenp);
     50void	xfs_bmap_adjacent(struct xfs_bmalloca *ap);
     51int	xfs_bmap_last_extent(struct xfs_trans *tp, struct xfs_inode *ip,
     52			     int whichfork, struct xfs_bmbt_irec *rec,
     53			     int *is_empty);
     54
     55/* preallocation and hole punch interface */
     56int	xfs_alloc_file_space(struct xfs_inode *ip, xfs_off_t offset,
     57			     xfs_off_t len);
     58int	xfs_free_file_space(struct xfs_inode *ip, xfs_off_t offset,
     59			    xfs_off_t len);
     60int	xfs_collapse_file_space(struct xfs_inode *, xfs_off_t offset,
     61				xfs_off_t len);
     62int	xfs_insert_file_space(struct xfs_inode *, xfs_off_t offset,
     63				xfs_off_t len);
     64
     65/* EOF block manipulation functions */
     66bool	xfs_can_free_eofblocks(struct xfs_inode *ip, bool force);
     67int	xfs_free_eofblocks(struct xfs_inode *ip);
     68
     69int	xfs_swap_extents(struct xfs_inode *ip, struct xfs_inode *tip,
     70			 struct xfs_swapext *sx);
     71
     72xfs_daddr_t xfs_fsb_to_db(struct xfs_inode *ip, xfs_fsblock_t fsb);
     73
     74xfs_extnum_t xfs_bmap_count_leaves(struct xfs_ifork *ifp, xfs_filblks_t *count);
     75int xfs_bmap_count_blocks(struct xfs_trans *tp, struct xfs_inode *ip,
     76			  int whichfork, xfs_extnum_t *nextents,
     77			  xfs_filblks_t *count);
     78
     79int	xfs_flush_unmap_range(struct xfs_inode *ip, xfs_off_t offset,
     80			      xfs_off_t len);
     81
     82#endif	/* __XFS_BMAP_UTIL_H__ */