If filesystem is readonly, don't recover inline dot inode.
Signed-off-by: Chao Yu <[email protected]>
---
fs/f2fs/namei.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
index 5cc4128..b4a5836 100644
--- a/fs/f2fs/namei.c
+++ b/fs/f2fs/namei.c
@@ -269,7 +269,7 @@ static struct dentry *f2fs_lookup(struct inode *dir, struct dentry *dentry,
if (IS_ERR(inode))
return ERR_CAST(inode);
- if (f2fs_has_inline_dots(inode)) {
+ if (f2fs_has_inline_dots(inode) && !f2fs_readonly(dir->i_sb)) {
err = __recover_dot_dentries(inode, dir->i_ino);
if (err)
goto err_out;
--
2.6.3
Hi Chao,
On Mon, Dec 28, 2015 at 06:12:45PM +0800, Chao Yu wrote:
> If filesystem is readonly, don't recover inline dot inode.
>
> Signed-off-by: Chao Yu <[email protected]>
> ---
> fs/f2fs/namei.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
> index 5cc4128..b4a5836 100644
> --- a/fs/f2fs/namei.c
> +++ b/fs/f2fs/namei.c
> @@ -269,7 +269,7 @@ static struct dentry *f2fs_lookup(struct inode *dir, struct dentry *dentry,
> if (IS_ERR(inode))
> return ERR_CAST(inode);
>
> - if (f2fs_has_inline_dots(inode)) {
> + if (f2fs_has_inline_dots(inode) && !f2fs_readonly(dir->i_sb)) {
We need to return -EROFS if f2fs is readonly?
Thanks,
> err = __recover_dot_dentries(inode, dir->i_ino);
> if (err)
> goto err_out;
> --
> 2.6.3
>
Hi Jaegeuk,
> -----Original Message-----
> From: Jaegeuk Kim [mailto:[email protected]]
> Sent: Tuesday, December 29, 2015 6:54 AM
> To: Chao Yu
> Cc: [email protected]; [email protected]
> Subject: Re: [PATCH] f2fs: fix to stop recovering dot dentries in a readonly fs
>
> Hi Chao,
>
> On Mon, Dec 28, 2015 at 06:12:45PM +0800, Chao Yu wrote:
> > If filesystem is readonly, don't recover inline dot inode.
> >
> > Signed-off-by: Chao Yu <[email protected]>
> > ---
> > fs/f2fs/namei.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
> > index 5cc4128..b4a5836 100644
> > --- a/fs/f2fs/namei.c
> > +++ b/fs/f2fs/namei.c
> > @@ -269,7 +269,7 @@ static struct dentry *f2fs_lookup(struct inode *dir, struct dentry *dentry,
> > if (IS_ERR(inode))
> > return ERR_CAST(inode);
> >
> > - if (f2fs_has_inline_dots(inode)) {
> > + if (f2fs_has_inline_dots(inode) && !f2fs_readonly(dir->i_sb)) {
>
> We need to return -EROFS if f2fs is readonly?
In a readonly mountpoint, we should still allow user to stat file/dir in
directory structure, rather than returning -EROFS when trying to recover,
Right?
Thanks,
>
> Thanks,
>
> > err = __recover_dot_dentries(inode, dir->i_ino);
> > if (err)
> > goto err_out;
> > --
> > 2.6.3
> >
Hi Chao,
On Tue, Dec 29, 2015 at 02:26:53PM +0800, Chao Yu wrote:
> Hi Jaegeuk,
>
> > -----Original Message-----
> > From: Jaegeuk Kim [mailto:[email protected]]
> > Sent: Tuesday, December 29, 2015 6:54 AM
> > To: Chao Yu
> > Cc: [email protected]; [email protected]
> > Subject: Re: [PATCH] f2fs: fix to stop recovering dot dentries in a readonly fs
> >
> > Hi Chao,
> >
> > On Mon, Dec 28, 2015 at 06:12:45PM +0800, Chao Yu wrote:
> > > If filesystem is readonly, don't recover inline dot inode.
> > >
> > > Signed-off-by: Chao Yu <[email protected]>
> > > ---
> > > fs/f2fs/namei.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
> > > index 5cc4128..b4a5836 100644
> > > --- a/fs/f2fs/namei.c
> > > +++ b/fs/f2fs/namei.c
> > > @@ -269,7 +269,7 @@ static struct dentry *f2fs_lookup(struct inode *dir, struct dentry *dentry,
> > > if (IS_ERR(inode))
> > > return ERR_CAST(inode);
> > >
> > > - if (f2fs_has_inline_dots(inode)) {
> > > + if (f2fs_has_inline_dots(inode) && !f2fs_readonly(dir->i_sb)) {
> >
> > We need to return -EROFS if f2fs is readonly?
>
> In a readonly mountpoint, we should still allow user to stat file/dir in
> directory structure, rather than returning -EROFS when trying to recover,
> Right?
As you suggested, we'd better remain some kernel messages. ;)
Thanks,
>
> Thanks,
>
> >
> > Thanks,
> >
> > > err = __recover_dot_dentries(inode, dir->i_ino);
> > > if (err)
> > > goto err_out;
> > > --
> > > 2.6.3
> > >