[PATCH 01/11] xfs: no need to lock the inode in xfs_find_handle

Christoph Hellwig
2013-12-06T20:31:32Z

[-- Attachment #1: xfs-fix-xfs_find_handle-locking --]
[-- Type: text/plain, Size: 940 bytes --]

Both the inode number and the generation do not change on a live inode.

Signed-off-by: Christoph Hellwig <hch@lst.de>

Index: xfs/fs/xfs/xfs_ioctl.c
===================================================================
--- xfs.orig/fs/xfs/xfs_ioctl.c 2013-12-06 19:16:33.819188640 +0100
+++ xfs/fs/xfs/xfs_ioctl.c 2013-12-06 19:17:04.087188019 +0100
@@ -112,15 +112,11 @@ xfs_find_handle(
memset(&handle.ha_fid, 0, sizeof(handle.ha_fid));
hsize = sizeof(xfs_fsid_t);
} else {
- int lock_mode;
-
- lock_mode = xfs_ilock_map_shared(ip);
handle.ha_fid.fid_len = sizeof(xfs_fid_t) -
sizeof(handle.ha_fid.fid_len);
handle.ha_fid.fid_pad = 0;
handle.ha_fid.fid_gen = ip->i_d.di_gen;
handle.ha_fid.fid_ino = ip->i_ino;
- xfs_iunlock_map_shared(ip, lock_mode);

hsize = XFS_HSIZE(handle);
}