Commit c7f2e1f0 authored by Dmitry Monakhov's avatar Dmitry Monakhov Committed by Dave Kleikamp

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: default avatarDmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: default avatarDave Kleikamp <shaggy@linux.vnet.ibm.com>
parent 2b0b3951
...@@ -60,7 +60,7 @@ struct inode *jfs_iget(struct super_block *sb, unsigned long ino) ...@@ -60,7 +60,7 @@ struct inode *jfs_iget(struct super_block *sb, unsigned long ino)
inode->i_op = &page_symlink_inode_operations; inode->i_op = &page_symlink_inode_operations;
inode->i_mapping->a_ops = &jfs_aops; inode->i_mapping->a_ops = &jfs_aops;
} else { } else {
inode->i_op = &jfs_symlink_inode_operations; inode->i_op = &jfs_fast_symlink_inode_operations;
/* /*
* The inline data should be null-terminated, but * The inline data should be null-terminated, but
* don't let on-disk corruption crash the kernel * don't let on-disk corruption crash the kernel
......
...@@ -47,5 +47,6 @@ extern const struct file_operations jfs_dir_operations; ...@@ -47,5 +47,6 @@ extern const struct file_operations jfs_dir_operations;
extern const struct inode_operations jfs_file_inode_operations; extern const struct inode_operations jfs_file_inode_operations;
extern const struct file_operations jfs_file_operations; extern const struct file_operations jfs_file_operations;
extern const struct inode_operations jfs_symlink_inode_operations; extern const struct inode_operations jfs_symlink_inode_operations;
extern const struct inode_operations jfs_fast_symlink_inode_operations;
extern const struct dentry_operations jfs_ci_dentry_operations; extern const struct dentry_operations jfs_ci_dentry_operations;
#endif /* _H_JFS_INODE */ #endif /* _H_JFS_INODE */
...@@ -946,7 +946,7 @@ static int jfs_symlink(struct inode *dip, struct dentry *dentry, ...@@ -946,7 +946,7 @@ static int jfs_symlink(struct inode *dip, struct dentry *dentry,
*/ */
if (ssize <= IDATASIZE) { if (ssize <= IDATASIZE) {
ip->i_op = &jfs_symlink_inode_operations; ip->i_op = &jfs_fast_symlink_inode_operations;
i_fastsymlink = JFS_IP(ip)->i_inline; i_fastsymlink = JFS_IP(ip)->i_inline;
memcpy(i_fastsymlink, name, ssize); memcpy(i_fastsymlink, name, ssize);
...@@ -968,7 +968,7 @@ static int jfs_symlink(struct inode *dip, struct dentry *dentry, ...@@ -968,7 +968,7 @@ static int jfs_symlink(struct inode *dip, struct dentry *dentry,
else { else {
jfs_info("jfs_symlink: allocate extent ip:0x%p", ip); jfs_info("jfs_symlink: allocate extent ip:0x%p", ip);
ip->i_op = &page_symlink_inode_operations; ip->i_op = &jfs_symlink_inode_operations;
ip->i_mapping->a_ops = &jfs_aops; ip->i_mapping->a_ops = &jfs_aops;
/* /*
......
...@@ -29,9 +29,21 @@ static void *jfs_follow_link(struct dentry *dentry, struct nameidata *nd) ...@@ -29,9 +29,21 @@ static void *jfs_follow_link(struct dentry *dentry, struct nameidata *nd)
return NULL; return NULL;
} }
const struct inode_operations jfs_symlink_inode_operations = { const struct inode_operations jfs_fast_symlink_inode_operations = {
.readlink = generic_readlink, .readlink = generic_readlink,
.follow_link = jfs_follow_link, .follow_link = jfs_follow_link,
.setattr = jfs_setattr,
.setxattr = jfs_setxattr,
.getxattr = jfs_getxattr,
.listxattr = jfs_listxattr,
.removexattr = jfs_removexattr,
};
const struct inode_operations jfs_symlink_inode_operations = {
.readlink = generic_readlink,
.follow_link = page_follow_link_light,
.put_link = page_put_link,
.setattr = jfs_setattr,
.setxattr = jfs_setxattr, .setxattr = jfs_setxattr,
.getxattr = jfs_getxattr, .getxattr = jfs_getxattr,
.listxattr = jfs_listxattr, .listxattr = jfs_listxattr,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment