From: OGAWA Hirofumi on 27 Dec 2009 07:40 Hi, Greg Kroah-Hartman <gregkh(a)suse.de> writes: > From: Kay Sievers <kay.sievers(a)vrfy.org> > > Filesystem code usually destroys the option buffer while > parsing it. This leads to errors when the same buffer is > passed twice. In case we fill a new superblock do not call > remount. > > This is needed to quite a warning that the debugfs code > causes every boot. > > Cc: Miklos Szeredi <miklos(a)szeredi.hu> > Signed-off-by: Kay Sievers <kay.sievers(a)vrfy.org> > Signed-off-by: Greg Kroah-Hartman <gregkh(a)suse.de> > --- > fs/super.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/fs/super.c b/fs/super.c > index 19eb70b..aff046b 100644 > --- a/fs/super.c > +++ b/fs/super.c > @@ -901,8 +901,9 @@ int get_sb_single(struct file_system_type *fs_type, > return error; > } > s->s_flags |= MS_ACTIVE; > + } else { > + do_remount_sb(s, flags, data, 0); > } > - do_remount_sb(s, flags, data, 0); > simple_set_mnt(mnt, s); > return 0; > } This breaks the historical behavior. Several users of get_sb_single() is parse data only on ->remount_fs. Well, ok, I like new behavior actually. But we need to convert to new behavior such users. I've listed all possibly affected users up (if I'm not missing). This means, using both data on ->fill_super and ->remount_fs is devtmpfs only. And capifs, usbfs, devpts would be needed the patch. arch/powerpc/platforms/cell/spufs/inode.c ->fill_super arch/s390/hypfs/inode.c ->fill_super drivers/isdn/capi/capifs.c ->remount_fs drivers/base/devtmpfs.c ->fill_super ->remount_fs drivers/usb/core/inode.c ->remount_fs fs/devpts/inode.c ->remount_fs Currently, I'm working on other bugs, so I just attached quick fix for regression. -- OGAWA Hirofumi <hirofumi(a)mail.parknet.co.jp> Signed-off-by: OGAWA Hirofumi <hirofumi(a)mail.parknet.co.jp> --- fs/super.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff -puN fs/super.c~get_sb_single-fix fs/super.c --- linux-2.6/fs/super.c~get_sb_single-fix 2009-12-27 20:48:07.000000000 +0900 +++ linux-2.6-hirofumi/fs/super.c 2009-12-27 20:48:29.000000000 +0900 @@ -912,9 +912,8 @@ int get_sb_single(struct file_system_typ return error; } s->s_flags |= MS_ACTIVE; - } else { - do_remount_sb(s, flags, data, 0); } + do_remount_sb(s, flags, data, 0); simple_set_mnt(mnt, s); return 0; } _ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Kay Sievers on 30 Dec 2009 13:10 On Sun, Dec 27, 2009 at 13:36, OGAWA Hirofumi <hirofumi(a)mail.parknet.co.jp> wrote: >> Filesystem code usually destroys the option buffer while >> parsing it. This leads to errors when the same buffer is >> passed twice. In case we fill a new superblock do not call >> remount. > This breaks the historical behavior. Several users of get_sb_single() is > parse data only on ->remount_fs. Well, ok, I like new behavior actually. > But we need to convert to new behavior such users. > > I've listed all possibly affected users up (if I'm not missing). This > means, using both data on ->fill_super and ->remount_fs is devtmpfs > only. And capifs, usbfs, devpts would be needed the patch. Hmm, these filesystem are probably not going to overwrite their own default options with their own special parameters to parse when they allocate their superblock. That would be pretty weird, wouldn't it? Seems they currently don't even pass "data" pointer around at that time. It's a bit different with tmpfs as we use it as a generic backend for a special purpose filesystem. What's the issue you are seeing, or have in mind? Thanks, Kay -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: OGAWA Hirofumi on 30 Dec 2009 14:40 Kay Sievers <kay.sievers(a)vrfy.org> writes: > On Sun, Dec 27, 2009 at 13:36, OGAWA Hirofumi > <hirofumi(a)mail.parknet.co.jp> wrote: >>> Filesystem code usually destroys the option buffer while >>> parsing it. This leads to errors when the same buffer is >>> passed twice. In case we fill a new superblock do not call >>> remount. > >> This breaks the historical behavior. Several users of get_sb_single() is >> parse data only on ->remount_fs. Well, ok, I like new behavior actually. >> But we need to convert to new behavior such users. >> >> I've listed all possibly affected users up (if I'm not missing). This >> means, using both data on ->fill_super and ->remount_fs is devtmpfs >> only. And capifs, usbfs, devpts would be needed the patch. > > Hmm, these filesystem are probably not going to overwrite their own > default options with their own special parameters to parse when they > allocate their superblock. That would be pretty weird, wouldn't it? > Seems they currently don't even pass "data" pointer around at that > time. Oops, I was missing that those all fs was using kern_mount(). Sorry for noise. -- OGAWA Hirofumi <hirofumi(a)mail.parknet.co.jp> -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|
Pages: 1 Prev: ACPI: WMI: Handle duplicate GUIDs Next: [PATCH] atarilance: timeout ignored in lance_open() |