forked from Minki/linux
[XFS] Fix lockdep annotations for xfs_lock_inodes
SGI-PV: 967035 SGI-Modid: xfs-linux-melb:xfs-kern:29026a Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
This commit is contained in:
parent
d7f0923d83
commit
0f1145cc18
@ -415,19 +415,22 @@ xfs_iflags_test(xfs_inode_t *ip, unsigned short flags)
|
||||
* gets a lockdep subclass of 1 and the second lock will have a lockdep
|
||||
* subclass of 0.
|
||||
*
|
||||
* XFS_I[O]LOCK_INUMORDER - for locking several inodes at the some time
|
||||
* XFS_LOCK_INUMORDER - for locking several inodes at the some time
|
||||
* with xfs_lock_inodes(). This flag is used as the starting subclass
|
||||
* and each subsequent lock acquired will increment the subclass by one.
|
||||
* So the first lock acquired will have a lockdep subclass of 2, the
|
||||
* second lock will have a lockdep subclass of 3, and so on.
|
||||
* second lock will have a lockdep subclass of 3, and so on. It is
|
||||
* the responsibility of the class builder to shift this to the correct
|
||||
* portion of the lock_mode lockdep mask.
|
||||
*/
|
||||
#define XFS_LOCK_PARENT 1
|
||||
#define XFS_LOCK_INUMORDER 2
|
||||
|
||||
#define XFS_IOLOCK_SHIFT 16
|
||||
#define XFS_IOLOCK_PARENT (1 << XFS_IOLOCK_SHIFT)
|
||||
#define XFS_IOLOCK_INUMORDER (2 << XFS_IOLOCK_SHIFT)
|
||||
#define XFS_IOLOCK_PARENT (XFS_LOCK_PARENT << XFS_IOLOCK_SHIFT)
|
||||
|
||||
#define XFS_ILOCK_SHIFT 24
|
||||
#define XFS_ILOCK_PARENT (1 << XFS_ILOCK_SHIFT)
|
||||
#define XFS_ILOCK_INUMORDER (2 << XFS_ILOCK_SHIFT)
|
||||
#define XFS_ILOCK_PARENT (XFS_LOCK_PARENT << XFS_ILOCK_SHIFT)
|
||||
|
||||
#define XFS_IOLOCK_DEP_MASK 0x00ff0000
|
||||
#define XFS_ILOCK_DEP_MASK 0xff000000
|
||||
|
@ -2224,9 +2224,9 @@ static inline int
|
||||
xfs_lock_inumorder(int lock_mode, int subclass)
|
||||
{
|
||||
if (lock_mode & (XFS_IOLOCK_SHARED|XFS_IOLOCK_EXCL))
|
||||
lock_mode |= (subclass + XFS_IOLOCK_INUMORDER) << XFS_IOLOCK_SHIFT;
|
||||
lock_mode |= (subclass + XFS_LOCK_INUMORDER) << XFS_IOLOCK_SHIFT;
|
||||
if (lock_mode & (XFS_ILOCK_SHARED|XFS_ILOCK_EXCL))
|
||||
lock_mode |= (subclass + XFS_ILOCK_INUMORDER) << XFS_ILOCK_SHIFT;
|
||||
lock_mode |= (subclass + XFS_LOCK_INUMORDER) << XFS_ILOCK_SHIFT;
|
||||
|
||||
return lock_mode;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user