diff options
author | Dave Kleikamp <shaggy@linux.vnet.ibm.com> | 2007-01-09 14:14:48 -0600 |
---|---|---|
committer | Dave Kleikamp <shaggy@linux.vnet.ibm.com> | 2007-01-09 14:14:48 -0600 |
commit | 82d5b9a7c63054a9a2cd838ffd177697f86e7e34 (patch) | |
tree | 7deb900fb1bdb9afe5487290838b2072b42f3790 /fs/jfs/jfs_incore.h | |
parent | 17e6afc75ad0150d265a86a8f155b2871f9c07fe (diff) | |
download | kernel_samsung_smdk4412-82d5b9a7c63054a9a2cd838ffd177697f86e7e34.zip kernel_samsung_smdk4412-82d5b9a7c63054a9a2cd838ffd177697f86e7e34.tar.gz kernel_samsung_smdk4412-82d5b9a7c63054a9a2cd838ffd177697f86e7e34.tar.bz2 |
JFS: Add lockdep annotations
Yeah, it's about time.
Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Diffstat (limited to 'fs/jfs/jfs_incore.h')
-rw-r--r-- | fs/jfs/jfs_incore.h | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/fs/jfs/jfs_incore.h b/fs/jfs/jfs_incore.h index 9400558..8f453ef 100644 --- a/fs/jfs/jfs_incore.h +++ b/fs/jfs/jfs_incore.h @@ -109,9 +109,11 @@ struct jfs_inode_info { #define JFS_ACL_NOT_CACHED ((void *)-1) -#define IREAD_LOCK(ip) down_read(&JFS_IP(ip)->rdwrlock) +#define IREAD_LOCK(ip, subclass) \ + down_read_nested(&JFS_IP(ip)->rdwrlock, subclass) #define IREAD_UNLOCK(ip) up_read(&JFS_IP(ip)->rdwrlock) -#define IWRITE_LOCK(ip) down_write(&JFS_IP(ip)->rdwrlock) +#define IWRITE_LOCK(ip, subclass) \ + down_write_nested(&JFS_IP(ip)->rdwrlock, subclass) #define IWRITE_UNLOCK(ip) up_write(&JFS_IP(ip)->rdwrlock) /* @@ -127,6 +129,29 @@ enum cflags { COMMIT_Synclist, /* metadata pages on group commit synclist */ }; +/* + * commit_mutex nesting subclasses: + */ +enum commit_mutex_class +{ + COMMIT_MUTEX_PARENT, + COMMIT_MUTEX_CHILD, + COMMIT_MUTEX_SECOND_PARENT, /* Renaming */ + COMMIT_MUTEX_VICTIM /* Inode being unlinked due to rename */ +}; + +/* + * rdwrlock subclasses: + * The dmap inode may be locked while a normal inode or the imap inode are + * locked. + */ +enum rdwrlock_class +{ + RDWRLOCK_NORMAL, + RDWRLOCK_IMAP, + RDWRLOCK_DMAP +}; + #define set_cflag(flag, ip) set_bit(flag, &(JFS_IP(ip)->cflag)) #define clear_cflag(flag, ip) clear_bit(flag, &(JFS_IP(ip)->cflag)) #define test_cflag(flag, ip) test_bit(flag, &(JFS_IP(ip)->cflag)) |