An error occurred fetching the project authors.
  1. 22 Sep, 2004 1 commit
    • Jeff Mahoney's avatar
      [PATCH] Fix for default ACL handling on ReiserFS · 1a5ad5dd
      Jeff Mahoney authored
      reiserfs_set_xattr() explicitly updates the ctime for the host inode.
      
      This works for direct setfacl/setfattr calls, but for the more common case
      of an inherited default ACL, it breaks.  The ACL is inherited in the middle
      of the new inode creation, before the inode has been hashed.
      
      When mark_inode_dirty is called, one of the checks bails out if the inode
      is unhashed -- but AFTER inode->i_state is updated, so the inode is marked
      dirty but never placed on any dirty list.
      
      Since the inode is never placed on a dirty list, __sync_single_inode from
      the writeback_inodes() path can never be called on it to clear the dirty
      flags.  Once the inode is hashed and mark_inode_dirty is called for it
      again, it's too late -- it will bail early assuming (correctly) that the
      inode is already marked dirty.  This ultimately results in I/O stalls that
      can't be resolved by the fs path, only be the memory allocation path that
      uses pages directly.
      
      The attached patch makes the update of the ctime conditional on the inode
      being hashed already.
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      1a5ad5dd
  2. 24 Aug, 2004 1 commit
    • Jeff Mahoney's avatar
      [PATCH] reiserfs: xattr/acl fixes · 2888a220
      Jeff Mahoney authored
      Here are a few fixes for bugs noticed on reiserfs-list or our own bugzilla.
      
      Attached is a patch that fixes several problems with xattrs/acls:
      [SECURITY] Fixes the inode not getting dirtied when mode is set
                 via setxattr()
      [CORRECTNESS] Fixes the inode not getting ctime updated when an xattr is
                    removed
      [DATA] Fixes an issue with dcache hash colliding names in the filesystem
             root caused by the d_compare to hide .reiserfs_priv. The bug
             can only occur in the filesystem root, which is why we haven't
             seen many (any, outside of the suse bugzilla, afaik) reports on
             this. The results are that dcache operations on colliding entries
             in the fs root will choose the first match rather than the
             correct entry.
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      2888a220
  3. 25 May, 2004 1 commit
    • Andrew Morton's avatar
      [PATCH] Fix for lockup in reiserfs acl/xattrs · 5ca68834
      Andrew Morton authored
      From: Jeff Mahoney <jeffm@suse.com>
      
      The following is a patch to fix a locking problem in ACL/xattr code. It
      manifests when a user attempts to set an xattr on a file which they do
      not own, and on which an ACL is applied.
      
      What happens is this:
      reiserfs_setxattr [write lock inode xattr sem]
        ->xattr_set
          -> lookup
             -> __reiserfs_permission [if conditions above are met, and need_lock=
       is
                unset, read lock inode xattr sem] *lockup*
      
      Since we already keep track of when to lock during permission calls, the
      fix is simple: just make the locking conditional as it was before.
      
      Credits to Andreas Gruenbacher <agruen@suse.de>
      5ca68834
  4. 10 May, 2004 7 commits