On Tue 13-04-10 21:51:18, Dmitry Monakhov wrote: > Dmitry Monakhov <dmonakhov@xxxxxxxxxx> writes: > > > generic setattr not longer responsible for quota transfer. > > use jfs_setattr for all jfs's inodes. > Jan, can you please confirm that you'll take care of this patch and > ufs's fix(the second patch). JFS is being maintained by Dave Kleikamp <shaggy@xxxxxxxxxxxxxxxxxx> and UFS should be maintained by Evgeniy Dushistov <dushistov@xxxxxxx> so it's their call. But since I've merged patches introducing the problem I can also take care of merging your fixes if maintainers won't object... Honza > > > > Signed-off-by: Dmitry Monakhov <dmonakhov@xxxxxxxxxx> > > --- > > fs/jfs/inode.c | 2 +- > > fs/jfs/jfs_inode.h | 1 + > > fs/jfs/namei.c | 4 ++-- > > fs/jfs/symlink.c | 14 +++++++++++++- > > 4 files changed, 17 insertions(+), 4 deletions(-) > > > > diff --git a/fs/jfs/inode.c b/fs/jfs/inode.c > > index c694a5f..39b2e41 100644 > > --- a/fs/jfs/inode.c > > +++ b/fs/jfs/inode.c > > @@ -60,7 +60,7 @@ struct inode *jfs_iget(struct super_block *sb, unsigned long ino) > > inode->i_op = &page_symlink_inode_operations; > > inode->i_mapping->a_ops = &jfs_aops; > > } else { > > - inode->i_op = &jfs_symlink_inode_operations; > > + inode->i_op = &jfs_fast_symlink_inode_operations; > > /* > > * The inline data should be null-terminated, but > > * don't let on-disk corruption crash the kernel > > diff --git a/fs/jfs/jfs_inode.h b/fs/jfs/jfs_inode.h > > index 4b91b27..fba6e6e 100644 > > --- a/fs/jfs/jfs_inode.h > > +++ b/fs/jfs/jfs_inode.h > > @@ -48,5 +48,6 @@ extern const struct file_operations jfs_dir_operations; > > extern const struct inode_operations jfs_file_inode_operations; > > extern const struct file_operations jfs_file_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; > > #endif /* _H_JFS_INODE */ > > diff --git a/fs/jfs/namei.c b/fs/jfs/namei.c > > index 4a3e9f3..a9cf8e8 100644 > > --- a/fs/jfs/namei.c > > +++ b/fs/jfs/namei.c > > @@ -956,7 +956,7 @@ static int jfs_symlink(struct inode *dip, struct dentry *dentry, > > */ > > > > 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; > > memcpy(i_fastsymlink, name, ssize); > > @@ -978,7 +978,7 @@ static int jfs_symlink(struct inode *dip, struct dentry *dentry, > > else { > > 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; > > > > /* > > diff --git a/fs/jfs/symlink.c b/fs/jfs/symlink.c > > index 4af1a05..205b946 100644 > > --- a/fs/jfs/symlink.c > > +++ b/fs/jfs/symlink.c > > @@ -29,9 +29,21 @@ static void *jfs_follow_link(struct dentry *dentry, struct nameidata *nd) > > return NULL; > > } > > > > -const struct inode_operations jfs_symlink_inode_operations = { > > +const struct inode_operations jfs_fast_symlink_inode_operations = { > > .readlink = generic_readlink, > > .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, > > .getxattr = jfs_getxattr, > > .listxattr = jfs_listxattr, -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html