Commit 0f1145cc18e970ebe37da114fc34c297f135e062

Authored by David Chinner
Committed by Tim Shimmin
1 parent d7f0923d83

[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>

Showing 2 changed files with 11 additions and 8 deletions Side-by-side Diff

... ... @@ -415,19 +415,22 @@
415 415 * gets a lockdep subclass of 1 and the second lock will have a lockdep
416 416 * subclass of 0.
417 417 *
418   - * XFS_I[O]LOCK_INUMORDER - for locking several inodes at the some time
  418 + * XFS_LOCK_INUMORDER - for locking several inodes at the some time
419 419 * with xfs_lock_inodes(). This flag is used as the starting subclass
420 420 * and each subsequent lock acquired will increment the subclass by one.
421 421 * So the first lock acquired will have a lockdep subclass of 2, the
422   - * second lock will have a lockdep subclass of 3, and so on.
  422 + * second lock will have a lockdep subclass of 3, and so on. It is
  423 + * the responsibility of the class builder to shift this to the correct
  424 + * portion of the lock_mode lockdep mask.
423 425 */
  426 +#define XFS_LOCK_PARENT 1
  427 +#define XFS_LOCK_INUMORDER 2
  428 +
424 429 #define XFS_IOLOCK_SHIFT 16
425   -#define XFS_IOLOCK_PARENT (1 << XFS_IOLOCK_SHIFT)
426   -#define XFS_IOLOCK_INUMORDER (2 << XFS_IOLOCK_SHIFT)
  430 +#define XFS_IOLOCK_PARENT (XFS_LOCK_PARENT << XFS_IOLOCK_SHIFT)
427 431  
428 432 #define XFS_ILOCK_SHIFT 24
429   -#define XFS_ILOCK_PARENT (1 << XFS_ILOCK_SHIFT)
430   -#define XFS_ILOCK_INUMORDER (2 << XFS_ILOCK_SHIFT)
  433 +#define XFS_ILOCK_PARENT (XFS_LOCK_PARENT << XFS_ILOCK_SHIFT)
431 434  
432 435 #define XFS_IOLOCK_DEP_MASK 0x00ff0000
433 436 #define XFS_ILOCK_DEP_MASK 0xff000000
fs/xfs/xfs_vnodeops.c
... ... @@ -2224,9 +2224,9 @@
2224 2224 xfs_lock_inumorder(int lock_mode, int subclass)
2225 2225 {
2226 2226 if (lock_mode & (XFS_IOLOCK_SHARED|XFS_IOLOCK_EXCL))
2227   - lock_mode |= (subclass + XFS_IOLOCK_INUMORDER) << XFS_IOLOCK_SHIFT;
  2227 + lock_mode |= (subclass + XFS_LOCK_INUMORDER) << XFS_IOLOCK_SHIFT;
2228 2228 if (lock_mode & (XFS_ILOCK_SHARED|XFS_ILOCK_EXCL))
2229   - lock_mode |= (subclass + XFS_ILOCK_INUMORDER) << XFS_ILOCK_SHIFT;
  2229 + lock_mode |= (subclass + XFS_LOCK_INUMORDER) << XFS_ILOCK_SHIFT;
2230 2230  
2231 2231 return lock_mode;
2232 2232 }