2004-10-14 16:08:34

by Alexander Zarochentsev

[permalink] [raw]
Subject: [RFC] MS_VERBOSE handling in get_sb_bdev()

Hello,

Anybody knows why the "silent" agrument of the fs' ->fill_super() routines is
passed as ((flags & MS_VERBOSE) ? 1 : 0) ?. It should be !(flags & MS_VERBOSE)
instead, yes?

I don't belive the bug is not known...

Regards,
Alex.


2004-10-14 19:03:15

by Randy.Dunlap

[permalink] [raw]
Subject: Re: [RFC] MS_VERBOSE handling in get_sb_bdev()

Alex Zarochentsev wrote:
> Hello,
>
> Anybody knows why the "silent" agrument of the fs' ->fill_super() routines is
> passed as ((flags & MS_VERBOSE) ? 1 : 0) ?. It should be !(flags & MS_VERBOSE)
> instead, yes?
>
> I don't belive the bug is not known...

I saw several of those about 1 year ago when I updated Al's
fs option patches and got them merged.

They should be fixed IMO, but it's low priority, they work ("it ain't
broke so don't fix it"), and maybe someone else thinks that there is
no problem at all, i.e., they aren't broken at all...

--
~Randy

2004-10-15 07:06:10

by Alexander Zarochentsev

[permalink] [raw]
Subject: [PATCH] Re: [RFC] MS_VERBOSE handling in get_sb_bdev()

On Thu, Oct 14, 2004 at 11:50:32AM -0700, Randy.Dunlap wrote:
> Alex Zarochentsev wrote:
> >Hello,
> >
> >Anybody knows why the "silent" agrument of the fs' ->fill_super() routines
> >is
> >passed as ((flags & MS_VERBOSE) ? 1 : 0) ?. It should be !(flags &
> >MS_VERBOSE)
> >instead, yes?
> >
> >I don't belive the bug is not known...
>
> I saw several of those about 1 year ago when I updated Al's
> fs option patches and got them merged.
>
> They should be fixed IMO, but it's low priority, they work ("it ain't
> broke so don't fix it"), and maybe someone else thinks that there is
> no problem at all, i.e., they aren't broken at all...

The kernel (2.6.9-rc4) patch is simple
==================================
--- linux/fs/super.c.orig 2004-10-14 18:12:50.213426568 +0400
+++ linux/fs/super.c 2004-10-14 18:13:46.923805280 +0400
@@ -692,7 +692,7 @@ struct super_block *get_sb_bdev(struct f
strlcpy(s->s_id, bdevname(bdev, b), sizeof(s->s_id));
s->s_old_blocksize = block_size(bdev);
sb_set_blocksize(s, s->s_old_blocksize);
- error = fill_super(s, data, flags & MS_VERBOSE ? 1 : 0);
+ error = fill_super(s, data, !(flags & MS_VERBOSE));
if (error) {
up_write(&s->s_umount);
deactivate_super(s);
==================================

there is another bug in the mount utility, it seems to me. mount never sets
MS_VERBOSE. I think it should be set when the mount does not do "fs probing"
as in "mount -t auto ".

> --
> ~Randy

--
Alex.