Message ID | 20211121074705.8615-1-realwakka@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [RFC] btrfs-progs: filesystem: du: skip file that permission denied | expand |
On 21.11.21 г. 9:47, Sidong Yang wrote: > This patch handles issue #421. Filesystem du command fails and exit > when it access file that has permission denied. But it can continue the > command except the files. This patch recovers ret value when permission > denied. > > Signed-off-by: Sidong Yang <realwakka@gmail.com> > --- > cmds/filesystem-du.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/cmds/filesystem-du.c b/cmds/filesystem-du.c > index 5865335d..64a1f7f5 100644 > --- a/cmds/filesystem-du.c > +++ b/cmds/filesystem-du.c > @@ -406,6 +406,9 @@ static int du_walk_dir(struct du_dir_ctxt *ctxt, struct rb_root *shared_extents) > if (ret == -ENOTTY) { > ret = 0; > continue; > + } else if (ret == -EACCES) { This can be added to the above condition with || ret == -EACCESS. Avoids code duplication. > + ret = 0; > + continue; > } else if (ret) { > errno = -ret; > fprintf(stderr, >
On Sun, Nov 21, 2021 at 11:01:02AM +0200, Nikolay Borisov wrote: > > > On 21.11.21 г. 9:47, Sidong Yang wrote: > > This patch handles issue #421. Filesystem du command fails and exit > > when it access file that has permission denied. But it can continue the > > command except the files. This patch recovers ret value when permission > > denied. > > > > Signed-off-by: Sidong Yang <realwakka@gmail.com> > > --- > > cmds/filesystem-du.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/cmds/filesystem-du.c b/cmds/filesystem-du.c > > index 5865335d..64a1f7f5 100644 > > --- a/cmds/filesystem-du.c > > +++ b/cmds/filesystem-du.c > > @@ -406,6 +406,9 @@ static int du_walk_dir(struct du_dir_ctxt *ctxt, struct rb_root *shared_extents) > > if (ret == -ENOTTY) { > > ret = 0; > > continue; > > + } else if (ret == -EACCES) { > > This can be added to the above condition with || ret == -EACCESS. Avoids > code duplication. Thanks! It would be better. > > > + ret = 0; > > + continue; > > } else if (ret) { > > errno = -ret; > > fprintf(stderr, > >
diff --git a/cmds/filesystem-du.c b/cmds/filesystem-du.c index 5865335d..64a1f7f5 100644 --- a/cmds/filesystem-du.c +++ b/cmds/filesystem-du.c @@ -406,6 +406,9 @@ static int du_walk_dir(struct du_dir_ctxt *ctxt, struct rb_root *shared_extents) if (ret == -ENOTTY) { ret = 0; continue; + } else if (ret == -EACCES) { + ret = 0; + continue; } else if (ret) { errno = -ret; fprintf(stderr,
This patch handles issue #421. Filesystem du command fails and exit when it access file that has permission denied. But it can continue the command except the files. This patch recovers ret value when permission denied. Signed-off-by: Sidong Yang <realwakka@gmail.com> --- cmds/filesystem-du.c | 3 +++ 1 file changed, 3 insertions(+)