6552321831
This patch drops the XFS-own i_iolock and uses the VFS i_rwsem which recently replaced i_mutex instead. This means we only have to take one lock instead of two in many fast path operations, and we can also shrink the xfs_inode structure. Thanks to the xfs_ilock family there is very little churn, the only thing of note is that we need to switch to use the lock_two_directory helper for taking the i_rwsem on two inodes in a few places to make sure our lock order matches the one used in the VFS. Signed-off-by: Christoph Hellwig <hch@lst.de> Tested-by: Jens Axboe <axboe@fb.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
20 lines
601 B
C
20 lines
601 B
C
#ifndef _XFS_PNFS_H
|
|
#define _XFS_PNFS_H 1
|
|
|
|
#ifdef CONFIG_EXPORTFS_BLOCK_OPS
|
|
int xfs_fs_get_uuid(struct super_block *sb, u8 *buf, u32 *len, u64 *offset);
|
|
int xfs_fs_map_blocks(struct inode *inode, loff_t offset, u64 length,
|
|
struct iomap *iomap, bool write, u32 *device_generation);
|
|
int xfs_fs_commit_blocks(struct inode *inode, struct iomap *maps, int nr_maps,
|
|
struct iattr *iattr);
|
|
|
|
int xfs_break_layouts(struct inode *inode, uint *iolock);
|
|
#else
|
|
static inline int
|
|
xfs_break_layouts(struct inode *inode, uint *iolock)
|
|
{
|
|
return 0;
|
|
}
|
|
#endif /* CONFIG_EXPORTFS_BLOCK_OPS */
|
|
#endif /* _XFS_PNFS_H */
|