24 Oct, 2014

1 commit

  • Overlayfs allows one, usually read-write, directory tree to be
    overlaid onto another, read-only directory tree. All modifications
    go to the upper, writable layer.

    This type of mechanism is most often used for live CDs but there's a
    wide variety of other uses.

    The implementation differs from other "union filesystem"
    implementations in that after a file is opened all operations go
    directly to the underlying, lower or upper, filesystems. This
    simplifies the implementation and allows native performance in these
    cases.

    The dentry tree is duplicated from the underlying filesystems, this
    enables fast cached lookups without adding special support into the
    VFS. This uses slightly more memory than union mounts, but dentries
    are relatively small.

    Currently inodes are duplicated as well, but it is a possible
    optimization to share inodes for non-directories.

    Opening non directories results in the open forwarded to the
    underlying filesystem. This makes the behavior very similar to union
    mounts (with the same limitations vs. fchmod/fchown on O_RDONLY file
    descriptors).

    Usage:

    mount -t overlayfs overlayfs -olowerdir=/lower,upperdir=/upper/upper,workdir=/upper/work /overlay

    The following cotributions have been folded into this patch:

    Neil Brown :
    - minimal remount support
    - use correct seek function for directories
    - initialise is_real before use
    - rename ovl_fill_cache to ovl_dir_read

    Felix Fietkau :
    - fix a deadlock in ovl_dir_read_merged
    - fix a deadlock in ovl_remove_whiteouts

    Erez Zadok
    - fix cleanup after WARN_ON

    Sedat Dilek
    - fix up permission to confirm to new API

    Robin Dong
    - fix possible leak in ovl_new_inode
    - create new inode in ovl_link

    Andy Whitcroft
    - switch to __inode_permission()
    - copy up i_uid/i_gid from the underlying inode

    AV:
    - ovl_copy_up_locked() - dput(ERR_PTR(...)) on two failure exits
    - ovl_clear_empty() - one failure exit forgetting to do unlock_rename(),
    lack of check for udir being the parent of upper, dropping and regaining
    the lock on udir (which would require _another_ check for parent being
    right).
    - bogus d_drop() in copyup and rename [fix from your mail]
    - copyup/remove and copyup/rename races [fix from your mail]
    - ovl_dir_fsync() leaving ERR_PTR() in ->realfile
    - ovl_entry_free() is pointless - it's just a kfree_rcu()
    - fold ovl_do_lookup() into ovl_lookup()
    - manually assigning ->d_op is wrong. Just use ->s_d_op.
    [patches picked from Miklos]:
    * copyup/remove and copyup/rename races
    * bogus d_drop() in copyup and rename

    Also thanks to the following people for testing and reporting bugs:

    Jordi Pujol
    Andy Whitcroft
    Michal Suchanek
    Felix Fietkau
    Erez Zadok
    Randy Dunlap

    Signed-off-by: Miklos Szeredi

    Miklos Szeredi
     

18 Sep, 2014

1 commit

  • Currently, all of the grace period handling is part of lockd. Eventually
    though we'd like to be able to build v4-only servers, at which point
    we'll need to put all of this elsewhere.

    Move the code itself into fs/nfs_common and have it build a grace.ko
    module. Then, rejigger the Kconfig options so that both nfsd and lockd
    enable it automatically.

    Signed-off-by: Jeff Layton

    Jeff Layton
     

08 Feb, 2014

1 commit

  • As sysfs was kernfs's only user, kernfs has been piggybacking on
    CONFIG_SYSFS; however, kernfs is scheduled to grow a new user very
    soon. Introduce a separate config option CONFIG_KERNFS which is to be
    selected by kernfs users.

    Signed-off-by: Tejun Heo
    Cc: linux-fsdevel@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman

    Tejun Heo
     

26 Jan, 2014

1 commit


17 Apr, 2013

1 commit

  • Now that efivarfs uses the efivar API, move it out of efivars.c and
    into fs/efivarfs where it belongs. This move will eventually allow us
    to enable the efivarfs code without having to also enable
    CONFIG_EFI_VARS built, and vice versa.

    Furthermore, things like,

    mount -t efivarfs none /sys/firmware/efi/efivars

    will now work if efivarfs is built as a module without requiring the
    use of MODULE_ALIAS(), which would have been necessary when the
    efivarfs code was part of efivars.c.

    Cc: Matthew Garrett
    Cc: Jeremy Kerr
    Reviewed-by: Tom Gundersen
    Tested-by: Tom Gundersen
    Signed-off-by: Matt Fleming

    Matt Fleming
     

17 Jan, 2013

1 commit


21 Dec, 2012

1 commit

  • Pull new F2FS filesystem from Jaegeuk Kim:
    "Introduce a new file system, Flash-Friendly File System (F2FS), to
    Linux 3.8.

    Highlights:
    - Add initial f2fs source codes
    - Fix an endian conversion bug
    - Fix build failures on random configs
    - Fix the power-off-recovery routine
    - Minor cleanup, coding style, and typos patches"

    From the Kconfig help text:

    F2FS is based on Log-structured File System (LFS), which supports
    versatile "flash-friendly" features. The design has been focused on
    addressing the fundamental issues in LFS, which are snowball effect
    of wandering tree and high cleaning overhead.

    Since flash-based storages show different characteristics according to
    the internal geometry or flash memory management schemes aka FTL, F2FS
    and tools support various parameters not only for configuring on-disk
    layout, but also for selecting allocation and cleaning algorithms.

    and there's an article by Neil Brown about it on lwn.net:

    http://lwn.net/Articles/518988/

    * tag 'for-3.8-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (36 commits)
    f2fs: fix tracking parent inode number
    f2fs: cleanup the f2fs_bio_alloc routine
    f2fs: introduce accessor to retrieve number of dentry slots
    f2fs: remove redundant call to f2fs_put_page in delete entry
    f2fs: make use of GFP_F2FS_ZERO for setting gfp_mask
    f2fs: rewrite f2fs_bio_alloc to make it simpler
    f2fs: fix a typo in f2fs documentation
    f2fs: remove unused variable
    f2fs: move error condition for mkdir at proper place
    f2fs: remove unneeded initialization
    f2fs: check read only condition before beginning write out
    f2fs: remove unneeded memset from init_once
    f2fs: show error in case of invalid mount arguments
    f2fs: fix the compiler warning for uninitialized use of variable
    f2fs: resolve build failures
    f2fs: adjust kernel coding style
    f2fs: fix endian conversion bugs reported by sparse
    f2fs: remove unneeded version.h header file from f2fs.h
    f2fs: update the f2fs document
    f2fs: update Kconfig and Makefile
    ...

    Linus Torvalds
     

11 Dec, 2012

2 commits

  • This adds Makefile and Kconfig for f2fs, and updates Makefile and Kconfig files
    in the fs directory.

    Signed-off-by: Jaegeuk Kim

    Jaegeuk Kim
     
  • Ted has sent out a RFC about removing this feature. Eric and Jan
    confirmed that both RedHat and SUSE enable this feature in all their
    product. David also said that "As far as I know, it's enabled in all
    Android kernels that use ext4." So it seems OK for us.

    And what's more, as inline data depends its implementation on xattr,
    and to be frank, I don't run any test again inline data enabled while
    xattr disabled. So I think we should add inline data and remove this
    config option in the same release.

    [ The savings if you disable CONFIG_EXT4_FS_XATTR is only 27k, which
    isn't much in the grand scheme of things. Since no one seems to be
    testing this configuration except for some automated compile farms, on
    balance we are better removing this config option, and so that it is
    effectively always enabled. -- tytso ]

    Cc: David Brown
    Cc: Eric Sandeen
    Reviewed-by: Jan Kara
    Signed-off-by: Tao Ma
    Signed-off-by: "Theodore Ts'o"

    Tao Ma
     

22 Mar, 2012

1 commit

  • Pull vfs pile 1 from Al Viro:
    "This is _not_ all; in particular, Miklos' and Jan's stuff is not there
    yet."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (64 commits)
    ext4: initialization of ext4_li_mtx needs to be done earlier
    debugfs-related mode_t whack-a-mole
    hfsplus: add an ioctl to bless files
    hfsplus: change finder_info to u32
    hfsplus: initialise userflags
    qnx4: new helper - try_extent()
    qnx4: get rid of qnx4_bread/qnx4_getblk
    take removal of PF_FORKNOEXEC to flush_old_exec()
    trim includes in inode.c
    um: uml_dup_mmap() relies on ->mmap_sem being held, but activate_mm() doesn't hold it
    um: embed ->stub_pages[] into mmu_context
    gadgetfs: list_for_each_safe() misuse
    ocfs2: fix leaks on failure exits in module_init
    ecryptfs: make register_filesystem() the last potential failure exit
    ntfs: forgets to unregister sysctls on register_filesystem() failure
    logfs: missing cleanup on register_filesystem() failure
    jfs: mising cleanup on register_filesystem() failure
    make configfs_pin_fs() return root dentry on success
    configfs: configfs_create_dir() has parent dentry in dentry->d_parent
    configfs: sanitize configfs_create()
    ...

    Linus Torvalds
     

21 Mar, 2012

1 commit

  • Adds support for qnx6fs readonly support to the linux kernel.

    * Mount option
    The option mmi_fs can be used to mount Harman Becker/Audi MMI 3G
    HDD qnx6fs filesystems.

    * Documentation
    A high level filesystem stucture description can be found in the
    Documentation/filesystems directory. (qnx6.txt)

    * Additional features
    - Active (stable) superblock selection
    - Superblock checksum check (enforced)
    - Supports mount of qnx6 filesystems with to host different endianess
    - Automatic endianess detection
    - Longfilename support (with non-enfocing crc check)
    - All blocksizes (512, 1024, 2048 and 4096 supported)

    Signed-off-by: Kai Bankett
    Signed-off-by: Al Viro

    Kai Bankett
     

09 Mar, 2012

1 commit


10 Jan, 2012

1 commit


06 Jan, 2012

1 commit

  • As Reported by Randy Dunlap

    When MISC_FILESYSTEMS is not enabled and NFS4.1 is:

    fs/built-in.o: In function `objio_alloc_io_state':
    objio_osd.c:(.text+0xcb525): undefined reference to `ore_get_rw_state'
    fs/built-in.o: In function `_write_done':
    objio_osd.c:(.text+0xcb58d): undefined reference to `ore_check_io'
    fs/built-in.o: In function `_read_done':
    ...

    When MISC_FILESYSTEMS, which is more of a GUI thing then anything else,
    is not selected. exofs/Kconfig is never examined during Kconfig,
    and it can not do it's magic stuff to automatically select everything
    needed.

    We must split exofs/Kconfig in two. The ore one is always included.
    And the exofs one is left in it's old place in the menu.

    [Needed for the 3.2.0 Kernel]
    CC: Stable Tree
    Reported-by: Randy Dunlap
    Signed-off-by: Boaz Harrosh

    Boaz Harrosh
     

04 Jan, 2012

1 commit


01 Nov, 2011

1 commit


04 Aug, 2011

1 commit


27 May, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (25 commits)
    cifs: remove unnecessary dentry_unhash on rmdir/rename_dir
    ocfs2: remove unnecessary dentry_unhash on rmdir/rename_dir
    exofs: remove unnecessary dentry_unhash on rmdir/rename_dir
    nfs: remove unnecessary dentry_unhash on rmdir/rename_dir
    ext2: remove unnecessary dentry_unhash on rmdir/rename_dir
    ext3: remove unnecessary dentry_unhash on rmdir/rename_dir
    ext4: remove unnecessary dentry_unhash on rmdir/rename_dir
    btrfs: remove unnecessary dentry_unhash in rmdir/rename_dir
    ceph: remove unnecessary dentry_unhash calls
    vfs: clean up vfs_rename_other
    vfs: clean up vfs_rename_dir
    vfs: clean up vfs_rmdir
    vfs: fix vfs_rename_dir for FS_RENAME_DOES_D_MOVE filesystems
    libfs: drop unneeded dentry_unhash
    vfs: update dentry_unhash() comment
    vfs: push dentry_unhash on rename_dir into file systems
    vfs: push dentry_unhash on rmdir into file systems
    vfs: remove dget() from dentry_unhash()
    vfs: dentry_unhash immediately prior to rmdir
    vfs: Block mmapped writes while the fs is frozen
    ...

    Linus Torvalds
     

26 May, 2011

2 commits

  • Commit 990d6c2d7aee921e3bce22b2d6a750fd552262be ("vfs: Add name to file
    handle conversion support") changed EXPORTFS to be a bool.
    This was needed for earlier revisions of the original patch, but the actual
    commit put the code needing it into its own file that only gets compiled
    when FHANDLE is selected which in turn selects EXPORTFS.
    So EXPORTFS can be safely compiled as a module when not selecting FHANDLE.

    Signed-off-by: Jonas Gorski
    Acked-by: Aneesh Kumar K.V
    Signed-off-by: Al Viro

    Jonas Gorski
     
  • Choosing TMPFS_XATTR default N was switching off TMPFS_POSIX_ACL,
    even if it had been Y in oldconfig; and Linus reports that PulseAudio
    goes subtly wrong unless it can use ACLs on /dev/shm.

    Make TMPFS_POSIX_ACL select TMPFS_XATTR (and depend upon TMPFS),
    and move the TMPFS_POSIX_ACL entry before the TMPFS_XATTR entry,
    to avoid asking unnecessary questions then ignoring their answers.

    Signed-off-by: Hugh Dickins
    Signed-off-by: Linus Torvalds

    Eric Paris
     

25 May, 2011

1 commit

  • Implement generic xattrs for tmpfs filesystems. The Feodra project, while
    trying to replace suid apps with file capabilities, realized that tmpfs,
    which is used on the build systems, does not support file capabilities and
    thus cannot be used to build packages which use file capabilities. Xattrs
    are also needed for overlayfs.

    The xattr interface is a bit odd. If a filesystem does not implement any
    {get,set,list}xattr functions the VFS will call into some random LSM hooks
    and the running LSM can then implement some method for handling xattrs.
    SELinux for example provides a method to support security.selinux but no
    other security.* xattrs.

    As it stands today when one enables CONFIG_TMPFS_POSIX_ACL tmpfs will have
    xattr handler routines specifically to handle acls. Because of this tmpfs
    would loose the VFS/LSM helpers to support the running LSM. To make up
    for that tmpfs had stub functions that did nothing but call into the LSM
    hooks which implement the helpers.

    This new patch does not use the LSM fallback functions and instead just
    implements a native get/set/list xattr feature for the full security.* and
    trusted.* namespace like a normal filesystem. This means that tmpfs can
    now support both security.selinux and security.capability, which was not
    previously possible.

    The basic implementation is that I attach a:

    struct shmem_xattr {
    struct list_head list; /* anchored by shmem_inode_info->xattr_list */
    char *name;
    size_t size;
    char value[0];
    };

    Into the struct shmem_inode_info for each xattr that is set. This
    implementation could easily support the user.* namespace as well, except
    some care needs to be taken to prevent large amounts of unswappable memory
    being allocated for unprivileged users.

    [mszeredi@suse.cz: new config option, suport trusted.*, support symlinks]
    Signed-off-by: Eric Paris
    Signed-off-by: Miklos Szeredi
    Acked-by: Serge Hallyn
    Tested-by: Serge Hallyn
    Cc: Kyle McMartin
    Acked-by: Hugh Dickins
    Tested-by: Jordi Pujol
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Paris
     

17 Mar, 2011

2 commits


15 Mar, 2011

1 commit


21 Jan, 2011

1 commit

  • The meaning of CONFIG_EMBEDDED has long since been obsoleted; the option
    is used to configure any non-standard kernel with a much larger scope than
    only small devices.

    This patch renames the option to CONFIG_EXPERT in init/Kconfig and fixes
    references to the option throughout the kernel. A new CONFIG_EMBEDDED
    option is added that automatically selects CONFIG_EXPERT when enabled and
    can be used in the future to isolate options that should only be
    considered for embedded systems (RISC architectures, SLOB, etc).

    Calling the option "EXPERT" more accurately represents its intention: only
    expert users who understand the impact of the configuration changes they
    are making should enable it.

    Reviewed-by: Ingo Molnar
    Acked-by: David Woodhouse
    Signed-off-by: David Rientjes
    Cc: Greg KH
    Cc: "David S. Miller"
    Cc: Jens Axboe
    Cc: Arnd Bergmann
    Cc: Robin Holt
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     

17 Jan, 2011

1 commit

  • - Fix a kconfig unmet dependency warning.
    - Remove the comment that identifies which filesystems use POSIX ACL
    utility routines.
    - Move the FS_POSIX_ACL symbol outside of the BLOCK symbol if/endif block
    because its functions do not depend on BLOCK and some of the filesystems
    that use it do not depend on BLOCK.

    warning: (GENERIC_ACL && JFFS2_FS_POSIX_ACL && NFSD_V4 && NFS_ACL_SUPPORT && 9P_FS_POSIX_ACL) selects FS_POSIX_ACL which has unmet direct dependencies (BLOCK)

    Signed-off-by: Randy Dunlap
    Cc: Al Viro
    Signed-off-by: Al Viro

    Randy Dunlap
     

29 Dec, 2010

1 commit

  • Some platforms have a small amount of non-volatile storage that
    can be used to store information useful to diagnose the cause of
    a system crash. This is the generic part of a file system interface
    that presents information from the crash as a series of files in
    /dev/pstore. Once the information has been seen, the underlying
    storage is freed by deleting the files.

    Signed-off-by: Tony Luck

    Tony Luck
     

29 Oct, 2010

1 commit


28 Oct, 2010

2 commits


27 Oct, 2010

1 commit

  • Move the EXPORTFS kconfig symbol out of the NETWORK_FILESYSTEMS block
    since it provides a library function that can be (and is) used by other
    (non-network) filesystems.

    This also eliminates a kconfig dependency warning:

    warning: (XFS_FS && BLOCK || NFSD && NETWORK_FILESYSTEMS && INET && FILE_LOCKING && BKL) selects EXPORTFS which has unmet direct dependencies (NETWORK_FILESYSTEMS)

    Signed-off-by: Randy Dunlap
    Cc: Dave Chinner
    Cc: Al Viro
    Cc: Alex Elder
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

21 Oct, 2010

1 commit

  • With all the patches we have queued in the BKL removal tree, only a
    few dozen modules are left that actually rely on the BKL, and even
    there are lots of low-hanging fruit. We need to decide what to do
    about them, this patch illustrates one of the options:

    Every user of the BKL is marked as 'depends on BKL' in Kconfig,
    and the CONFIG_BKL becomes a user-visible option. If it gets
    disabled, no BKL using module can be built any more and the BKL
    code itself is compiled out.

    The one exception is file locking, which is practically always
    enabled and does a 'select BKL' instead. This effectively forces
    CONFIG_BKL to be enabled until we have solved the fs/lockd
    mess and can apply the patch that removes the BKL from fs/locks.c.

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

06 Oct, 2010

2 commits

  • smbfs has been scheduled for removal in 2.6.27, so
    maybe we can now move it to drivers/staging on the
    way out.

    smbfs still uses the big kernel lock and nobody
    is going to fix that, so we should be getting
    rid of it soon.

    This removes the 32 bit compat mount and ioctl
    handling code, which is implemented in common fs
    code, and moves all smbfs related files into
    drivers/staging/smbfs.

    Signed-off-by: Arnd Bergmann
    Acked-by: Jeff Layton
    Signed-off-by: Greg Kroah-Hartman

    Arnd Bergmann
     
  • Nobody appears to be interested in fixing autofs3 bugs
    any more and it uses the BKL, which is going away.

    Move this to staging for retirement. Unless someone
    complains until 2.6.38, we can remove it for good.

    The include/linux/auto_fs.h header file is still used
    by autofs4, so it remains in place.

    Signed-off-by: Arnd Bergmann
    Cc: Ian Kent
    Cc: autofs@linux.kernel.org
    Cc: "H. Peter Anvin"
    Acked-by: H. Peter Anvin
    Signed-off-by: Greg Kroah-Hartman

    Arnd Bergmann
     

20 Jul, 2010

1 commit


20 Mar, 2010

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (205 commits)
    ceph: update for write_inode API change
    ceph: reset osd after relevant messages timed out
    ceph: fix flush_dirty_caps race with caps migration
    ceph: include migrating caps in issued set
    ceph: fix osdmap decoding when pools include (removed) snaps
    ceph: return EBADF if waiting for caps on closed file
    ceph: set osd request message front length correctly
    ceph: reset front len on return to msgpool; BUG on mismatched front iov
    ceph: fix snaptrace decoding on cap migration between mds
    ceph: use single osd op reply msg
    ceph: reset bits on connection close
    ceph: remove bogus mds forward warning
    ceph: remove fragile __map_osds optimization
    ceph: fix connection fault STANDBY check
    ceph: invalidate_authorizer without con->mutex held
    ceph: don't clobber write return value when using O_SYNC
    ceph: fix client_request_forward decoding
    ceph: drop messages on unregistered mds sessions; cleanup
    ceph: fix comments, locking in destroy_inode
    ceph: move dereference after NULL test
    ...

    Fix trivial conflicts in Documentation/ioctl/ioctl-number.txt

    Linus Torvalds
     

21 Nov, 2009

1 commit


30 Oct, 2009

2 commits


27 Oct, 2009

1 commit