2015-12-28 10:13:33

by Chao Yu

[permalink] [raw]
Subject: [PATCH] f2fs: fix to stop recovering dot dentries in a readonly fs

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


2015-12-28 22:53:55

by Jaegeuk Kim

[permalink] [raw]
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?

Thanks,

> err = __recover_dot_dentries(inode, dir->i_ino);
> if (err)
> goto err_out;
> --
> 2.6.3
>

2015-12-29 06:27:39

by Chao Yu

[permalink] [raw]
Subject: RE: [PATCH] f2fs: fix to stop recovering dot dentries in a readonly fs

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
> >

2015-12-30 00:44:32

by Jaegeuk Kim

[permalink] [raw]
Subject: Re: [PATCH] f2fs: fix to stop recovering dot dentries in a readonly fs

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
> > >