Commit c7f2e1f0ac142a657a1de00d404e1c8345b20598
Committed by
Dave Kleikamp
1 parent
2b0b39517d
Exists in
master
and in
4 other branches
jfs: add jfs specific ->setattr call
generic setattr not longer responsible for quota transfer. use jfs_setattr for all jfs's inodes. Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org> Signed-off-by: Dave Kleikamp <shaggy@linux.vnet.ibm.com>
Showing 4 changed files with 17 additions and 4 deletions Side-by-side Diff
fs/jfs/inode.c
... | ... | @@ -60,7 +60,7 @@ |
60 | 60 | inode->i_op = &page_symlink_inode_operations; |
61 | 61 | inode->i_mapping->a_ops = &jfs_aops; |
62 | 62 | } else { |
63 | - inode->i_op = &jfs_symlink_inode_operations; | |
63 | + inode->i_op = &jfs_fast_symlink_inode_operations; | |
64 | 64 | /* |
65 | 65 | * The inline data should be null-terminated, but |
66 | 66 | * don't let on-disk corruption crash the kernel |
fs/jfs/jfs_inode.h
... | ... | @@ -47,6 +47,7 @@ |
47 | 47 | extern const struct inode_operations jfs_file_inode_operations; |
48 | 48 | extern const struct file_operations jfs_file_operations; |
49 | 49 | extern const struct inode_operations jfs_symlink_inode_operations; |
50 | +extern const struct inode_operations jfs_fast_symlink_inode_operations; | |
50 | 51 | extern const struct dentry_operations jfs_ci_dentry_operations; |
51 | 52 | #endif /* _H_JFS_INODE */ |
fs/jfs/namei.c
... | ... | @@ -946,7 +946,7 @@ |
946 | 946 | */ |
947 | 947 | |
948 | 948 | if (ssize <= IDATASIZE) { |
949 | - ip->i_op = &jfs_symlink_inode_operations; | |
949 | + ip->i_op = &jfs_fast_symlink_inode_operations; | |
950 | 950 | |
951 | 951 | i_fastsymlink = JFS_IP(ip)->i_inline; |
952 | 952 | memcpy(i_fastsymlink, name, ssize); |
... | ... | @@ -968,7 +968,7 @@ |
968 | 968 | else { |
969 | 969 | jfs_info("jfs_symlink: allocate extent ip:0x%p", ip); |
970 | 970 | |
971 | - ip->i_op = &page_symlink_inode_operations; | |
971 | + ip->i_op = &jfs_symlink_inode_operations; | |
972 | 972 | ip->i_mapping->a_ops = &jfs_aops; |
973 | 973 | |
974 | 974 | /* |
fs/jfs/symlink.c
... | ... | @@ -29,9 +29,21 @@ |
29 | 29 | return NULL; |
30 | 30 | } |
31 | 31 | |
32 | -const struct inode_operations jfs_symlink_inode_operations = { | |
32 | +const struct inode_operations jfs_fast_symlink_inode_operations = { | |
33 | 33 | .readlink = generic_readlink, |
34 | 34 | .follow_link = jfs_follow_link, |
35 | + .setattr = jfs_setattr, | |
36 | + .setxattr = jfs_setxattr, | |
37 | + .getxattr = jfs_getxattr, | |
38 | + .listxattr = jfs_listxattr, | |
39 | + .removexattr = jfs_removexattr, | |
40 | +}; | |
41 | + | |
42 | +const struct inode_operations jfs_symlink_inode_operations = { | |
43 | + .readlink = generic_readlink, | |
44 | + .follow_link = page_follow_link_light, | |
45 | + .put_link = page_put_link, | |
46 | + .setattr = jfs_setattr, | |
35 | 47 | .setxattr = jfs_setxattr, |
36 | 48 | .getxattr = jfs_getxattr, |
37 | 49 | .listxattr = jfs_listxattr, |