Message ID | 1430803373-4948-7-git-send-email-viro@ZenIV.linux.org.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue 05-05-15 06:21:41, Al Viro wrote: > From: Al Viro <viro@zeniv.linux.org.uk> > > Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Looks good. You can add: Reviewed-by: Jan Kara <jack@suse.cz> Honza > --- > fs/befs/linuxvfs.c | 24 +++++------------------- > 1 file changed, 5 insertions(+), 19 deletions(-) > > diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c > index 7943533..172e306 100644 > --- a/fs/befs/linuxvfs.c > +++ b/fs/befs/linuxvfs.c > @@ -43,7 +43,6 @@ static struct inode *befs_alloc_inode(struct super_block *sb); > static void befs_destroy_inode(struct inode *inode); > static void befs_destroy_inodecache(void); > static void *befs_follow_link(struct dentry *, struct nameidata *); > -static void *befs_fast_follow_link(struct dentry *, struct nameidata *); > static int befs_utf2nls(struct super_block *sb, const char *in, int in_len, > char **out, int *out_len); > static int befs_nls2utf(struct super_block *sb, const char *in, int in_len, > @@ -80,11 +79,6 @@ static const struct address_space_operations befs_aops = { > .bmap = befs_bmap, > }; > > -static const struct inode_operations befs_fast_symlink_inode_operations = { > - .readlink = generic_readlink, > - .follow_link = befs_fast_follow_link, > -}; > - > static const struct inode_operations befs_symlink_inode_operations = { > .readlink = generic_readlink, > .follow_link = befs_follow_link, > @@ -403,10 +397,12 @@ static struct inode *befs_iget(struct super_block *sb, unsigned long ino) > inode->i_op = &befs_dir_inode_operations; > inode->i_fop = &befs_dir_operations; > } else if (S_ISLNK(inode->i_mode)) { > - if (befs_ino->i_flags & BEFS_LONG_SYMLINK) > + if (befs_ino->i_flags & BEFS_LONG_SYMLINK) { > inode->i_op = &befs_symlink_inode_operations; > - else > - inode->i_op = &befs_fast_symlink_inode_operations; > + } else { > + inode->i_link = befs_ino->i_data.symlink; > + inode->i_op = &simple_symlink_inode_operations; > + } > } else { > befs_error(sb, "Inode %lu is not a regular file, " > "directory or symlink. THAT IS WRONG! BeFS has no " > @@ -497,16 +493,6 @@ befs_follow_link(struct dentry *dentry, struct nameidata *nd) > return NULL; > } > > - > -static void * > -befs_fast_follow_link(struct dentry *dentry, struct nameidata *nd) > -{ > - struct befs_inode_info *befs_ino = BEFS_I(d_inode(dentry)); > - > - nd_set_link(nd, befs_ino->i_data.symlink); > - return NULL; > -} > - > /* > * UTF-8 to NLS charset convert routine > * > -- > 2.1.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c index 7943533..172e306 100644 --- a/fs/befs/linuxvfs.c +++ b/fs/befs/linuxvfs.c @@ -43,7 +43,6 @@ static struct inode *befs_alloc_inode(struct super_block *sb); static void befs_destroy_inode(struct inode *inode); static void befs_destroy_inodecache(void); static void *befs_follow_link(struct dentry *, struct nameidata *); -static void *befs_fast_follow_link(struct dentry *, struct nameidata *); static int befs_utf2nls(struct super_block *sb, const char *in, int in_len, char **out, int *out_len); static int befs_nls2utf(struct super_block *sb, const char *in, int in_len, @@ -80,11 +79,6 @@ static const struct address_space_operations befs_aops = { .bmap = befs_bmap, }; -static const struct inode_operations befs_fast_symlink_inode_operations = { - .readlink = generic_readlink, - .follow_link = befs_fast_follow_link, -}; - static const struct inode_operations befs_symlink_inode_operations = { .readlink = generic_readlink, .follow_link = befs_follow_link, @@ -403,10 +397,12 @@ static struct inode *befs_iget(struct super_block *sb, unsigned long ino) inode->i_op = &befs_dir_inode_operations; inode->i_fop = &befs_dir_operations; } else if (S_ISLNK(inode->i_mode)) { - if (befs_ino->i_flags & BEFS_LONG_SYMLINK) + if (befs_ino->i_flags & BEFS_LONG_SYMLINK) { inode->i_op = &befs_symlink_inode_operations; - else - inode->i_op = &befs_fast_symlink_inode_operations; + } else { + inode->i_link = befs_ino->i_data.symlink; + inode->i_op = &simple_symlink_inode_operations; + } } else { befs_error(sb, "Inode %lu is not a regular file, " "directory or symlink. THAT IS WRONG! BeFS has no " @@ -497,16 +493,6 @@ befs_follow_link(struct dentry *dentry, struct nameidata *nd) return NULL; } - -static void * -befs_fast_follow_link(struct dentry *dentry, struct nameidata *nd) -{ - struct befs_inode_info *befs_ino = BEFS_I(d_inode(dentry)); - - nd_set_link(nd, befs_ino->i_data.symlink); - return NULL; -} - /* * UTF-8 to NLS charset convert routine *