Re: [f2fs-dev] [PATCH] f2fs: fix error handling on device alias check in rename and unlink
Jaegeuk Kim via Linux-f2fs-devel <[email protected]>
| Newsgroups | net.sourceforge.lists.linux-f2fs-devel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On 08/21, Daeho Jeong wrote: > From: Daeho Jeong <[email protected]> > > In f2fs_rename() and f2fs_unlink(), directly returning -EPERM when > encountering a device aliasing file bypasses the cleanup path. > > Fix this by setting err to -EPERM and jumping to the proper cleanup > labels (out_dir and out) instead of returning immediately. > > Fixes: a737e409a3d6 ("f2fs: support dynamic reserve/release for device aliasing") > Cc: [email protected] Applied without Fixes and stable, since the original patch has not been upstreamed. > Reported-by: Christophe JAILLET <[email protected]> > Signed-off-by: Daeho Jeong <[email protected]> > Reviewed-by: Chao Yu <[email protected]> > --- > fs/f2fs/namei.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c > index 784f636244e1..b9b15c5d28de 100644 > --- a/fs/f2fs/namei.c > +++ b/fs/f2fs/namei.c > @@ -571,8 +571,10 @@ static int f2fs_unlink(struct inode *dir, struct dentry *dentry) > > trace_f2fs_unlink_enter(dir, dentry); > > - if (IS_DEVICE_ALIASING(inode)) > - return -EPERM; > + if (IS_DEVICE_ALIASING(inode)) { > + err = -EPERM; > + goto out; > + } > > if (unlikely(f2fs_cp_error(sbi))) { > err = -EIO; > @@ -1025,8 +1027,10 @@ static int f2fs_rename(struct mnt_idmap *idmap, struct inode *old_dir, > } > > if (new_inode) { > - if (IS_DEVICE_ALIASING(new_inode)) > - return -EPERM; > + if (IS_DEVICE_ALIASING(new_inode)) { > + err = -EPERM; > + goto out_dir; > + } > > err = -ENOTEMPTY; > if (old_is_dir && !f2fs_empty_dir(new_inode)) > -- > 2.55.0.766.g2966f0265a-goog > > > > _______________________________________________ > Linux-f2fs-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel