lkml.org 
[lkml]   [2009]   [Jun]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH] ramfs: ignore tmpfs options when we emulate it
    On Sun, Jun 14, 2009 at 06:01:10PM +0800, Wu Fengguang wrote:
    > On Sat, Jun 13, 2009 at 10:15:51PM +0800, Hugh Dickins wrote:
    > > On Sat, 13 Jun 2009, Mike Frysinger wrote:
    > >
    > > > On systems where CONFIG_SHMEM is disabled, mounting tmpfs filesystems can
    > > > fail when tmpfs options are used. This is because tmpfs creates a small
    > > > wrapper around ramfs which rejects unknown options, and ramfs itself only
    > > > supports a tiny subset of what tmpfs supports. This makes it pretty hard
    > > > to use the same userspace systems across different configuration systems.
    > > > As such, ramfs should ignore the tmpfs options when tmpfs is merely a
    > > > wrapper around ramfs.
    > >
    > > Yes, indeed, thanks a lot for reporting this.
    > >
    > > But I'm uneasy with making ramfs behaviour differ with CONFIG_SHMEM
    > > (perhaps that's silly: certainly tmpfs behaviour differs with it),
    > > and uneasy with coding a list of options we need to remember to keep
    > > in synch with mm/shmem.c. It's easier to justify ignoring all options,
    > > than rejecting some while ignoring others yet not respecting them.
    >
    > We can avoid the burden of syncing a list of options between
    > ramfs<>tmpfs by a slightly differently patch. Hopefully this makes
    > ramfs behave like other filesystems when used standalone.

    Sorry I take back the previous patch. It makes sense to not break
    existing user space tools, but a warning message looks OK to remind
    people of possibly unexpected behavior.

    Thanks,
    Fengguang

    ---
    [PATCH] ramfs: ignore unknown mount options

    From: Mike Frysinger <vapier@gentoo.org>

    On systems where CONFIG_SHMEM is disabled, mounting tmpfs filesystems can
    fail when tmpfs options are used. This is because tmpfs creates a small
    wrapper around ramfs which rejects unknown options, and ramfs itself only
    supports a tiny subset of what tmpfs supports. This makes it pretty hard
    to use the same userspace systems across different configuration systems.
    As such, ramfs should ignore the tmpfs options when tmpfs is merely a
    wrapper around ramfs.

    This used to work before commit c3b1b1cbf0 as previously, ramfs would
    ignore all options. But now, we get:
    ramfs: bad mount option: size=10M
    mount: mounting mdev on /dev failed: Invalid argument

    Another option might be to restore the previous behavior, where ramfs
    simply ignored all unknown mount options ... which is what Hugh prefers.

    Acked-by: Matt Mackall <mpm@selenic.com>
    Signed-off-by: Mike Frysinger <vapier@gentoo.org>
    Signed-off-by: Hugh Dickins <hugh.dickins@tiscali.co.uk>
    Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
    Cc: stable@kernel.org
    ---

    fs/ramfs/inode.c | 7 ++++++-
    1 file changed, 6 insertions(+), 1 deletion(-)

    --- linux.orig/fs/ramfs/inode.c
    +++ linux/fs/ramfs/inode.c
    @@ -202,9 +202,14 @@ static int ramfs_parse_options(char *dat
    return -EINVAL;
    opts->mode = option & S_IALLUGO;
    break;
    + /*
    + * Traditionally ramfs has ignored all mount options,
    + * and as it is used as a !CONFIG_SHMEM simple substitute
    + * for tmpfs, ignore other mount options with a warning.
    + */
    default:
    printk(KERN_ERR "ramfs: bad mount option: %s\n", p);
    - return -EINVAL;
    + break;
    }
    }


    \
     
     \ /
      Last update: 2009-06-14 12:45    [W:0.026 / U:117.996 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site