11 Dec, 2014

2 commits

  • Al Viro
     
  • New pseudo-filesystem: nsfs. Targets of /proc/*/ns/* live there now.
    It's not mountable (not even registered, so it's not in /proc/filesystems,
    etc.). Files on it *are* bindable - we explicitly permit that in do_loopback().

    This stuff lives in fs/nsfs.c now; proc_ns_fget() moved there as well.
    get_proc_ns() is a macro now (it's simply returning ->i_private; would
    have been an inline, if not for header ordering headache).
    proc_ns_inode() is an ex-parrot. The interface used in procfs is
    ns_get_path(path, task, ops) and ns_get_name(buf, size, task, ops).

    Dentries and inodes are never hashed; a non-counting reference to dentry
    is stashed in ns_common (removed by ->d_prune()) and reused by ns_get_path()
    if present. See ns_get_path()/ns_prune_dentry/nsfs_evict() for details
    of that mechanism.

    As the result, proc_ns_follow_link() has stopped poking in nd->path.mnt;
    it does nd_jump_link() on a consistent pair it gets
    from ns_get_path().

    Signed-off-by: Al Viro

    Al Viro
     

20 Nov, 2014

1 commit

  • Some distributions carry an "old" format of overlayfs while mainline has a
    "new" format.

    The distros will possibly want to keep the old overlayfs alongside the new
    for compatibility reasons.

    To make it possible to differentiate the two versions change the name of
    the new one from "overlayfs" to "overlay".

    Signed-off-by: Miklos Szeredi
    Reported-by: Serge Hallyn
    Cc: Andy Whitcroft

    Miklos Szeredi
     

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
     

08 Aug, 2014

1 commit

  • Add a new field to fs_pin - kill(pin). That's what umount and r/o remount
    will be calling for all pins attached to vfsmount and superblock resp.
    Called after bumping the refcount, so it won't go away under us. Dropping
    the refcount is responsibility of the instance. All generic stuff moved to
    fs/fs_pin.c; the next step will rip all the knowledge of kernel/acct.c from
    fs/super.c and fs/namespace.c. After that - death to mnt_pin(); it was
    intended to be usable as generic mechanism for code that wants to attach
    objects to vfsmount, so that they would not make the sucker busy and
    would get killed on umount. Never got it right; it remained acct.c-specific
    all along. Now it's very close to being killable.

    Signed-off-by: Al Viro

    Al Viro
     

20 May, 2014

1 commit


19 May, 2014

1 commit


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
     

29 Jan, 2014

1 commit

  • Pull vfs updates from Al Viro:
    "Assorted stuff; the biggest pile here is Christoph's ACL series. Plus
    assorted cleanups and fixes all over the place...

    There will be another pile later this week"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (43 commits)
    __dentry_path() fixes
    vfs: Remove second variable named error in __dentry_path
    vfs: Is mounted should be testing mnt_ns for NULL or error.
    Fix race when checking i_size on direct i/o read
    hfsplus: remove can_set_xattr
    nfsd: use get_acl and ->set_acl
    fs: remove generic_acl
    nfs: use generic posix ACL infrastructure for v3 Posix ACLs
    gfs2: use generic posix ACL infrastructure
    jfs: use generic posix ACL infrastructure
    xfs: use generic posix ACL infrastructure
    reiserfs: use generic posix ACL infrastructure
    ocfs2: use generic posix ACL infrastructure
    jffs2: use generic posix ACL infrastructure
    hfsplus: use generic posix ACL infrastructure
    f2fs: use generic posix ACL infrastructure
    ext2/3/4: use generic posix ACL infrastructure
    btrfs: use generic posix ACL infrastructure
    fs: make posix_acl_create more useful
    fs: make posix_acl_chmod more useful
    ...

    Linus Torvalds
     

26 Jan, 2014

2 commits


28 Nov, 2013

1 commit

  • Core sysfs implementation will be separated into kernfs so that it can
    be used by other non-kobject users.

    This patch creates fs/kernfs/ directory and makes boilerplate changes.
    kernfs interface will be directly based on sysfs_dirent and its
    forward declaration is moved to include/linux/kernfs.h which is
    included from include/linux/sysfs.h. sysfs core implementation will
    be gradually separated out and moved to kernfs.

    This patch doesn't introduce any functional changes.

    v2: mount.c added.

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

    Tejun Heo
     

02 May, 2013

2 commits

  • Pull VFS updates from Al Viro,

    Misc cleanups all over the place, mainly wrt /proc interfaces (switch
    create_proc_entry to proc_create(), get rid of the deprecated
    create_proc_read_entry() in favor of using proc_create_data() and
    seq_file etc).

    7kloc removed.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (204 commits)
    don't bother with deferred freeing of fdtables
    proc: Move non-public stuff from linux/proc_fs.h to fs/proc/internal.h
    proc: Make the PROC_I() and PDE() macros internal to procfs
    proc: Supply a function to remove a proc entry by PDE
    take cgroup_open() and cpuset_open() to fs/proc/base.c
    ppc: Clean up scanlog
    ppc: Clean up rtas_flash driver somewhat
    hostap: proc: Use remove_proc_subtree()
    drm: proc: Use remove_proc_subtree()
    drm: proc: Use minor->index to label things, not PDE->name
    drm: Constify drm_proc_list[]
    zoran: Don't print proc_dir_entry data in debug
    reiserfs: Don't access the proc_dir_entry in r_open(), r_start() r_show()
    proc: Supply an accessor for getting the data from a PDE's parent
    airo: Use remove_proc_subtree()
    rtl8192u: Don't need to save device proc dir PDE
    rtl8187se: Use a dir under /proc/net/r8180/
    proc: Add proc_mkdir_data()
    proc: Move some bits from linux/proc_fs.h to linux/{of.h,signal.h,tty.h}
    proc: Move PDE_NET() to fs/proc/proc_net.c
    ...

    Linus Torvalds
     
  • Pull x86/efi changes from Peter Anvin:
    "The bulk of these changes are cleaning up the efivars handling and
    breaking it up into a tree of files. There are a number of fixes as
    well.

    The entire changeset is pretty big, but most of it is code movement.

    Several of these commits are quite new; the history got very messed up
    due to a mismerge with the urgent changes for rc8 which completely
    broke IA64, and so Ingo requested that we rebase it to straighten it
    out."

    * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    efi: remove "kfree(NULL)"
    efi: locking fix in efivar_entry_set_safe()
    efi, pstore: Read data from variable store before memcpy()
    efi, pstore: Remove entry from list when erasing
    efi, pstore: Initialise 'entry' before iterating
    efi: split efisubsystem from efivars
    efivarfs: Move to fs/efivarfs
    efivars: Move pstore code into the new EFI directory
    efivars: efivar_entry API
    efivars: Keep a private global pointer to efivars
    efi: move utf16 string functions to efi.h
    x86, efi: Make efi_memblock_x86_reserve_range more readable
    efivarfs: convert to use simple_open()

    Linus Torvalds
     

01 May, 2013

1 commit

  • Add a new configuration option CONFIG_BINFMT_SCRIPT to configure support
    for interpreted scripts starting with "#!"; allow compiling out that
    support, or building it as a module. Embedded systems running exclusively
    compiled binaries could leave this support out, and systems that don't
    need scripts before mounting the root filesystem can build this as a
    module.

    Signed-off-by: Josh Triplett
    Cc: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Josh Triplett
     

30 Apr, 2013

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
     

10 Apr, 2013

1 commit


11 Dec, 2012

1 commit


06 Oct, 2012

1 commit

  • Adds an expert Kconfig option, CONFIG_COREDUMP, which allows disabling of
    core dump. This saves approximately 2.6k in the compiled kernel, and
    complements CONFIG_ELF_CORE, which now depends on it.

    CONFIG_COREDUMP also disables coredump-related sysctls, except for
    suid_dumpable and related functions, which are necessary for ptrace.

    [akpm@linux-foundation.org: fix binfmt_aout.c build]
    Signed-off-by: Alex Kelly
    Reviewed-by: Josh Triplett
    Acked-by: Serge Hallyn
    Acked-by: Kees Cook
    Cc: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alex Kelly
     

03 Oct, 2012

1 commit

  • This prepares for making core dump functionality optional.

    The variable "suid_dumpable" and associated functions are left in fs/exec.c
    because they're used elsewhere, such as in ptrace.

    Signed-off-by: Alex Kelly
    Reviewed-by: Josh Triplett
    Acked-by: Serge Hallyn
    Acked-by: Kees Cook
    Signed-off-by: Andrew Morton
    Signed-off-by: Al Viro

    Alex Kelly
     

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
     

07 Jan, 2012

1 commit


04 Jan, 2012

2 commits


27 Oct, 2011

1 commit


25 Oct, 2011

1 commit

  • fs/exofs directory has multiple targets now, of which the
    ore.ko will be needed by the pnfs-objects-layout-driver
    (fs/nfs/objlayout).

    As suggested by: Michal Marek convert
    inclusion of exofs/ from obj-$(CONFIG_EXOFS_FS) => obj-$(y).
    So ORE can be selected also from fs/nfs/Kconfig

    CC: Michal Marek
    CC: Al Viro
    Signed-off-by: Boaz Harrosh

    Boaz Harrosh
     

16 Jul, 2011

1 commit

  • As promised in feature-removal-schedule.txt it is time to
    remove the nfsctl system call.

    Userspace has perferred to not use this call throughout 2.6 and it has been
    excluded in the default configuration since 2.6.36 (9 months ago).

    So this patch removes all the code that was being compiled out.

    There are still references to sys_nfsctl in various arch systemcall tables
    and related code. These should be cleaned out too, probably in the next
    merge window.

    Signed-off-by: NeilBrown
    Signed-off-by: J. Bruce Fields

    NeilBrown
     

17 Mar, 2011

1 commit

  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
    [IA64] tioca: Fix assignment from incompatible pointer warnings
    [IA64] mca.c: Fix cast from integer to pointer warning
    [IA64] setup.c Typo fix "Architechtuallly"
    [IA64] Add CONFIG_MISC_DEVICES=y to configs that need it.
    [IA64] disable interrupts at end of ia64_mca_cpe_int_handler()
    [IA64] Add DMA_ERROR_CODE define.
    pstore: fix build warning for unused return value from sysfs_create_file
    pstore: X86 platform interface using ACPI/APEI/ERST
    pstore: new filesystem interface to platform persistent storage

    Linus Torvalds
     

15 Mar, 2011

1 commit


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


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
     

23 Sep, 2010

1 commit


22 May, 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


07 Oct, 2009

1 commit


07 Apr, 2009

1 commit