15 Jun, 2006

1 commit

  • This patch fixes the way we have been dealing with unlinked,
    but still open files. It removes all limits (other than memory
    for inodes, as per every other filesystem) on numbers of these
    which we can support on GFS2. It also means that (like other
    fs) its the responsibility of the last process to close the file
    to deallocate the storage, rather than the person who did the
    unlinking. Note that with GFS2, those two events might take place
    on different nodes.

    Also there are a number of other changes:

    o We use the Linux inode subsystem as it was intended to be
    used, wrt allocating GFS2 inodes
    o The Linux inode cache is now the point which we use for
    local enforcement of only holding one copy of the inode in
    core at once (previous to this we used the glock layer).
    o We no longer use the unlinked "special" file. We just ignore it
    completely. This makes unlinking more efficient.
    o We now use the 4th block allocation state. The previously unused
    state is used to track unlinked but still open inodes.
    o gfs2_inoded is no longer needed
    o Several fields are now no longer needed (and removed) from the in
    core struct gfs2_inode
    o Several fields are no longer needed (and removed) from the in core
    superblock

    There are a number of future possible optimisations and clean ups
    which have been made possible by this patch.

    Signed-off-by: Steven Whitehouse

    Steven Whitehouse
     

10 Jun, 2006

1 commit

  • Here's a patch which add 32/64 bit compat to the DLM IOs and tidies the
    structures for alignment.

    As it causes an ABI change I had few qualms about adding the extra flag for
    "is64bit" as it simply uses a byte that would have been padding.

    Cc: David Woodhouse
    Signed-off-by: Patrick Caulfield
    Signed-off-by: Steven Whitehouse

    Patrick Caulfield
     

07 Jun, 2006

2 commits


06 Jun, 2006

2 commits


01 Jun, 2006

1 commit


31 May, 2006

7 commits


27 May, 2006

1 commit


26 May, 2006

3 commits


24 May, 2006

5 commits


22 May, 2006

8 commits

  • Signed-off-by: Steven Whitehouse

    Steven Whitehouse
     
  • This adds support to GFS2 for selinux extended attributes. There is a
    known bug in gfs2_ea_get() which is believed to be independant of this
    patch. Further patches will follow once that bug is fixed in order to
    make GFS2 use as much of the generic eattr infrastructure as possible.

    Signed-off-by: Ryan O'Hara
    Signed-off-by: Steven Whitehouse

    Ryan O'Hara
     
  • Don't reassign to watch. If idr_find() returns NULL, then
    put_inotify_watch() will choke.

    Signed-off-by: Amy Griffis
    Cc: John McCutchan
    Cc: Robert Love
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Amy Griffis
     
  • While doing some inotify stress testing, I hit the following race. In
    inotify_release(), it's possible for a watch to be removed from the lists
    in between dropping dev->mutex and taking inode->inotify_mutex. The
    reference we hold prevents the watch from being freed, but not from being
    removed.

    Checking the dev's idr mapping will prevent a double list_del of the
    same watch.

    Signed-off-by: Amy Griffis
    Acked-by: John McCutchan
    Cc: Robert Love
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Amy Griffis
     
  • Bernd Schmidt points out that binfmt_flat is now leaving the exec file open
    while the application runs. This offsets all the application's fd numbers.
    We should have closed the file within exec(), not at exit()-time.

    But there doesn't seem to be a lot of point in doing all this just to avoid
    going over RLIMIT_NOFILE by one fd for a few microseconds. So take the EMFILE
    checking out again. This will cause binfmt_flat to again fail LTP's
    exec-should-return-EMFILE-when-fdtable-is-full test. That test appears to be
    wrong anyway - Open Group specs say nothing about exec() returning EMFILE.

    Cc: Bernd Schmidt
    Cc: Greg Ungerer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Assigning the result of posix_acl_to_xattr() to an unsigned data type
    (size/size_t) obscures possible errors.

    Coverity CID: 1206.

    Signed-off-by: Florin Malita
    Acked-by: NeilBrown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Florin Malita
     
  • Address a problem found when a Linux NFS server uses the "subtree_check"
    export option.

    The "subtree_check" NFS export option was designed to prohibit a client
    from using a file handle for which it should not have permission. The
    algorithm used is to ensure that the entire path to the file being
    referenced is accessible to the user attempting to use the file handle. If
    some part of the path is not accessible, then the operation is aborted and
    the appropriate version of ESTALE is returned to the NFS client.

    The error, ESTALE, is unfortunate in that it causes NFS clients to make
    certain assumptions about the continued existence of the file. They assume
    that the file no longer exists and refuse to attempt to access it again.
    In this case, the file really does exist, but access was denied by the
    server for a particular user.

    A better error to return would be an EACCES sort of error. This would
    inform the client that the particular operation that it was attempting was
    not allowed, without the nasty side effects of the ESTALE error.

    Signed-off-by: Peter Staubach
    Acked-By: NeilBrown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Staubach
     
  • Functions compat_nfs_svc_trans, compat_nfs_clnt_trans,
    compat_nfs_exp_trans, compat_nfs_getfd_trans and compat_nfs_getfs_trans,
    which are called by compat_sys_nfsservctl(fs/compat.c), don't handle the
    return value of access_ok properly. access_ok return 1 when the addr is
    valid, and 0 when it's not, but these functions have the reversed
    understanding. When the address is valid, they always return -EFAULT to
    compat_sys_nfsservctl.

    An example is to run /usr/sbin/rpc.nfsd(32bit program on Power5). It
    doesn't function as expected. strace showes that nfsservctl returns
    -EFAULT.

    The patch fixes this by correcting the error handling on the return value
    of access_ok in the five functions.

    Signed-off-by: Lin Feng Shen
    Cc: Trond Myklebust
    Acked-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lin Feng Shen
     

19 May, 2006

8 commits


18 May, 2006

1 commit