An error occurred fetching the project authors.
  1. 06 Mar, 2004 1 commit
    • Andrew Morton's avatar
      [PATCH] fastcall / regparm fixes · 20e39386
      Andrew Morton authored
      From: Gerd Knorr <kraxel@suse.de>
      
      Current gcc's error out if a function's declaration and definition disagree
      about the register passing convention.
      
      The patch adds a new `fastcall' declatation primitive, and uses that in all
      the FASTCALL functions which we could find.  A number of inconsistencies were
      fixed up along the way.
      20e39386
  2. 19 Feb, 2004 1 commit
    • Andrew Morton's avatar
      [PATCH] fix access() POSIX compliance · 05789ebc
      Andrew Morton authored
      From: Andreas Gruenbacher <agruen@suse.de>
      
      The fix for permission() that makes it compliant with POSIX.1-2001
      apparently was lost.  Here is the patch I sent before.  (The relevant lines
      from the standard text are cited in
      http://www.ussg.iu.edu/hypermail/linux/kernel/0310.2/0286.html.  The fix
      proposed in that posting did not handle directories without execute
      permissions correctly.)
      
      
      Make permission check conform to POSIX.1-2001
      
      The access(2) function does not conform to POSIX.1-2001: For root
      and a file with no permissions, access(file, MAY_READ|MAY_EXEC)
      returns 0 (it should return -1).
      05789ebc
  3. 10 Feb, 2004 1 commit
    • Ingo Molnar's avatar
      [PATCH] open writecount scalability cleanup · a4614dba
      Ingo Molnar authored
      This is an obvious scalability improvement for write()s.  We used a
      global lock to protect the inode writecount (updated on every open for
      writing) - this just makes it use the existing inode->i_lock instead.
      
      Compiles & boots fine on x86 SMP.
      a4614dba
  4. 04 Feb, 2004 2 commits
    • Andrew Morton's avatar
      [PATCH] Remove uneeded dentry assignment · eb36334a
      Andrew Morton authored
      From: James Morris <jmorris@redhat.com>
      
      It seems to me that this dentry assignment in open_namei is not needed per
      the patch below.  On this path, dentry is not referenced.
      eb36334a
    • Andrew Morton's avatar
      [PATCH] namei.c: take vfsmount_lock · 5f833af7
      Andrew Morton authored
      From: Mike Waychison <Michael.Waychison@Sun.COM>
      
      The attached patch ensures that we grab vfsmount_lock when grabbing a
      reference to mnt_parent in follow_up and follow_dotdot.
      
      We also don't need to access ->mnt_parent in follow_mount and
      __follow_down to mntput because we already the parent pointer on the stack.
      5f833af7
  5. 01 Oct, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] Pass nameidata to security_inode_permission hook · d5f1f9dd
      Andrew Morton authored
      From: Stephen Smalley <sds@epoch.ncsc.mil>
      
      This patch changes the security_inode_permission hook to also take a
      nameidata parameter in addition to the existing inode and mask parameters. 
      
      A nameidata is already passed (although sometimes NULL) to
      fs/namei.c:permission(), and the patch changes exec_permission_lite() to
      also take a nameidata parameter so that it can pass it along to the
      security hook.
      
      The patch includes corresponding changes to the SELinux module to use the
      nameidata information when it is available; this allows SELinux to include
      pathname information in audit messages when a nameidata structure was
      supplied.
      d5f1f9dd
  6. 29 Sep, 2003 1 commit
  7. 23 Sep, 2003 2 commits
    • Alexander Viro's avatar
      [PATCH] 32-bit dev_t: switch-over · 1c2c2a8f
      Alexander Viro authored
      Real conversion to 32bit dev_t.  Expansion to:
      	* mknod() - 32
      	* newstat() - 32 on 64bit platforms
      	* stat64() - 32 on mips, 64 on everything else (mips has weird struct
      stat64 and can't get more than 32 bits).  Note that right now the difference
      is purely theoretical - we don't have internal values above 32 bits, so
      huge_... vs. new_... only marks the places where 64bit conversion will need
      extra work.
      	* arch-dependent stat variants - depending on width available.
      	* ustat et.al. - 32
      	* filesystems that can handle 32 bits right now - 32
      	* ext2 and ext3 - 32, with large dev_t inodes having 0 in the first
      element of i_data[] (where we store dev_t value for small device numbers) and
      keeping the value in the second element.
      	* nfsd - 32; it can be driven to 64, but we'll get several issues with
      NFSv2 support.
      	* RAID - 32
      	* devmapper - with v1 it's still 16 (nothing to do here), with v4 it's
      64.
      	* loop - 64
      	* initramfs - 32
      	* do_mounts code - 32.  Parts that scan devfs tree are using newstat()
      on 64bit platforms and stat64() on the rest (IOW, the latest stat variant on
      given platform).
      	* old_valid_dev()/new_valid_dev() added where needed (stat variants,
      mostly - we fail with -EOVERFLOW if values do not fit).
      1c2c2a8f
    • Alexander Viro's avatar
      [PATCH] prepare for 32-bit dev_t: mknod()/ustat() · 917bb5a1
      Alexander Viro authored
      	Changed sys_mknod() prototype to have unsigned int passed to it
      instead of current dev_t.  Added old_decode_dev() in sys_mknod() and
      made sure that its callers are passing it old_encode_dev(<value>)
      	Switched sys_ustat() and its variants from dev_t to unsigned (and
      added old_decode_dev()).
      	Took care of assignments to ROOT_DEV - again, old_decode_dev().
      	Late-boot search in devfs (call sys_newstat() and compare with
      st_rdev) also updated.
      917bb5a1
  8. 20 Aug, 2003 1 commit
    • Trond Myklebust's avatar
      [PATCH] Support dentry revalidation under open(".") · e14720a1
      Trond Myklebust authored
      link_path_walk() currently treats the special filenames ".", ".."
      and "/" differently in that it does not call down to the filesystem in
      order to revalidate the cached dentry, but just assumes that it is
      fine.
      
        For most filesystems this is OK, but it the case of the stateless
      NFS, this means that it circumvents path staleness detection, and the
      attribute+data cache revalidation code on such common commands as
      opendir(".").
      
      This change provides a way to do such revalidation for NFS without
      impacting other filesystems. 
      
      Note: the failure to revalidate the path here does not result in a
      call to d_invalidate() unlike (all?) other calls to d_revalidate(). It
      only results in an ESTALE error being returned to the caller.
      e14720a1
  9. 07 Aug, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] export lookup_create() · d3d147ac
      Andrew Morton authored
      From: jbarnes@sgi.com (Jesse Barnes)
      
      hwgfs needs lookup_create(), and intermezzo already has copied it.
      
      Document it, export it to modules and fix intermezzo.
      d3d147ac
  10. 10 Jul, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] separate locking for vfsmounts · 91b79ba7
      Andrew Morton authored
      From: Maneesh Soni <maneesh@in.ibm.com>
      
      While path walking we do follow_mount or follow_down which uses
      dcache_lock for serialisation.  vfsmount related operations also use
      dcache_lock for all updates. I think we can use a separate lock for
      vfsmount related work and can improve path walking.
      
      The following two patches does the same. The first one replaces
      dcache_lock with new vfsmount_lock in namespace.c. The lock is
      local to namespace.c and is not required outside. The second patch
      uses RCU to have lock free lookup_mnt(). The patches are quite simple
      and straight forward.
      
      The lockmeter reults show reduced contention, and lock acquisitions
      for dcache_lock while running dcachebench* on a 4-way SMP box
      
          SPINLOCKS         HOLD            WAIT
          UTIL  CON    MEAN(  MAX )   MEAN(  MAX )(% CPU)     TOTAL NOWAIT SPIN RJECT  NAME
      
        baselkm-2569:
          20.7% 20.9%  0.5us( 146us)  2.9us( 144us)(0.81%)  31590840 79.1% 20.9%    0%  dcache_lock
        mntlkm-2569:
          14.3% 13.6%  0.4us( 170us)  2.9us( 187us)(0.42%)  23071746 86.4% 13.6%    0%  dcache_lock
      
      We get more than 8% improvement on 4-way SMP and 44% improvement on 16-way
      NUMAQ while runing dcachebench*.
      
      		Average (usecs/iteration)	Std. Deviation
      		(lower is better)
      4-way SMP
        2.5.69	15739.3				470.90
        2.5.69-mnt	14459.6				298.51
      
      16-way NUMAQ
        2.5.69	120426.5			363.78
        2.5.69-mnt	 63225.8			427.60
      
      *dcachebench is a microbenchmark written by Bill Hartner and is available at
      http://www-124.ibm.com/developerworks/opensource/linuxperf/dcachebench/dcachebench.html
      
       vfsmount_lock.patch
       -------------------
       - Patch for replacing dcache_lock with new vfsmount_lock for all mount
         related operation. This removes the need to take dcache_lock while
         doing follow_mount or follow_down operations in path walking.
      
      I re-ran dcachebench with 2.5.70 as base on 16-way NUMAQ box.
      
                      	Average (usecs/iteration)       Std. Deviation
                      	(lower is better)
      16-way NUMAQ
      2.5.70 				120710.9		 	230.67
       + vfsmount_lock.patch  	65209.6				242.97
          + lookup_mnt-rcu.patch 	64042.3				416.61
      
      So just the lock splitting (vfsmount_lock.patch) gives almost similar benifits
      91b79ba7
  11. 07 Jul, 2003 1 commit
    • Trond Myklebust's avatar
      [PATCH] make create() follow symlinks again · a35d0e11
      Trond Myklebust authored
         The intent patches broke behaviour w.r.t. following symlinks when
      doing an open() with file creation. The problem occurs in open_namei()
      because the LOOKUP_PARENT flag is no longer set when we do the call to
      follow_link().
      a35d0e11
  12. 04 Jul, 2003 3 commits
    • Trond Myklebust's avatar
      [PATCH] Pass 'nameidata' to ->permission() · a574f324
      Trond Myklebust authored
         - Make the VFS pass the struct nameidata as an optional parameter
           to the permission() inode operation.
      
         - Patch may_create()/may_open() so it passes the struct nameidata from
           vfs_create()/open_namei() as an argument to permission().
      
         - Add an intent flag for the sys_access() function.
      a574f324
    • Trond Myklebust's avatar
      [PATCH] Pass 'nameidata' to ->create() · 675b5da0
      Trond Myklebust authored
        - Make the VFS pass the struct nameidata as an optional argument
          to the create inode operation.
        - Patch vfs_create() to take a struct nameidata as an optional
          argument.
      675b5da0
    • Trond Myklebust's avatar
      [PATCH] Add open intent information to the 'struct nameidata' · fc8b427e
      Trond Myklebust authored
       - Add open intent information to the 'struct nameidata'.
       - Pass the struct nameidata as an optional parameter to the
         lookup() inode operation.
       - Pass the struct nameidata as an optional parameter to the
         d_revalidate() dentry operation.
       - Make link_path_walk() set the LOOKUP_CONTINUE flag in nd->flags instead
         of passing it as an extra parameter to d_revalidate().
       - Make open_namei(), and sys_uselib() set the open()/create() intent
         data.
      fc8b427e
  13. 17 Jun, 2003 1 commit
  14. 13 Jun, 2003 1 commit
  15. 09 Jun, 2003 1 commit
    • Frank Cusack's avatar
      [PATCH] nfs_unlink() problem fix · 32538906
      Frank Cusack authored
      When foo is unlinked, nfs_unlink() does a sillyrename, this puts the
      dentry on nfs_delete_queue, and (in the VFS) unhashes it from the
      dcache.  This causes problems, since any later access to the
      silly-renamed new .nfs file will create a NEW dentry that aliases the
      one we originally created, but unhashed.
      
      This causes various confusion, especially if we want to try to delete it
      again later.
      
      So fix this by not unhash the dentry after silly-renaming.  In 2.2, each
      fs was responsible for doing a d_delete(), in 2.4 and later it happens
      in the VFS layer and I think it was just an oversight that the 2.4 VFS
      doesn't consider sillyrename (considering the code and comments that are
      cruft).
      
      Also fixed up some comments while debugging this.
      32538906
  16. 29 May, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] speed up the unlink speedup · 3493e0ab
      Andrew Morton authored
      I'm not sure why I used igrab() in unlink().  igrab takes the oft-taken
      inode_lock.
      
      The caller has a ref, so a simple increment of i_count will suffice.
      3493e0ab
  17. 07 May, 2003 1 commit
  18. 16 Apr, 2003 1 commit
    • David Mosberger's avatar
      [PATCH] fix fs->lock deadlock with emulated name lookup · 1c5d9bc3
      David Mosberger authored
      The patch below is needed to avoid a deadlock on fs->lock.  Without
      the patch, if __emul_lookup_dentry() returns 0, we fail to reacquire
      current->fs->lock and then go ahead to read_unlock() it anyhow.  Bad
      for your health.
      
      I believe the bug was introduced when the fast pathwalk was reverted
      in order to introduce the RCU lockless path walking.
      1c5d9bc3
  19. 08 Apr, 2003 1 commit
  20. 03 Apr, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] real_lookup race fix · 1b8910cf
      Andrew Morton authored
      From: Maneesh Soni <maneesh@in.ibm.com>
      
      Here is a patch to use seqlock for real_lookup race with d_lookup as suggested
      by Linus. The race condition can result in duplicate dentry when d_lookup
      fails due concurrent d_move in some unrelated directory.
      
      Apart from real_lookup, lookup_hash()->cached_lookup() can also fail due
      to same reason. So, for that I am doing the d_lookup again.
      
      Now we have __d_lookup (called from do_lookup() during pathwalk) and
      d_lookup which uses seqlock to protect againt rename race.
      
      dcachebench numbers (lower is better) don't have much difference on a 4-way
      PIII xeon SMP box.
      
      base-2565
      Average usec/iteration  19059.4
      Standard Deviation      503.07
      
      base-2565 + seq_lock
      Average usec/iteration  18843.2
      Standard Deviation      450.57
      1b8910cf
  21. 10 Mar, 2003 1 commit
  22. 06 Mar, 2003 1 commit
  23. 15 Feb, 2003 1 commit
  24. 04 Feb, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] fix i_sem contention in sys_unlink() · 46b11ba9
      Andrew Morton authored
      Truncates can take a very long time.  Especially if there is a lot of
      writeout happening, because truncate must wait on in-progress I/O.
      
      And sys_unlink() is performing that truncate while holding the parent
      directory's i_sem.  This basically shuts down new accesses to the entire
      directory until the synchronous I/O completes.
      
      In the testing I've been doing, that directory is /tmp, and this hurts.
      
      So change sys_unlink() to perform the actual truncate outside i_sem.
      
      When there is a continuous streaming write to the same disk, this patch
      reduces the time for `make -j4 bzImage' from 370 seconds to 220.
      46b11ba9
  25. 16 Jan, 2003 1 commit
    • Stephen D. Smalley's avatar
      [PATCH] Replace inode_post_lookup hook with d_instantiate hook · 4f152a7e
      Stephen D. Smalley authored
      This patch removes the security_inode_post_lookup hook entirely and
      adds a security_d_instantiate hook call to the d_instantiate function
      and the d_splice_alias function.  The inode_post_lookup hook was
      subject to races since the inode is already accessible through the
      dcache before it is called, didn't handle filesystems that directly
      populate the dcache, and wasn't always called in the desired context
      (e.g. for pipe, shmem, and devpts inodes).  The d_instantiate hook
      enables initialization of the inode security information.  This hook
      is used by SELinux and by DTE to setup the inode security state, and
      eliminated the need for the inode_precondition function in SELinux.
      4f152a7e
  26. 11 Jan, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] misc fixes · 0c682373
      Andrew Morton authored
      - Fix error-path mem leak in __vfs_follow_link() (From a recent AC->2.4
        patch)
      
      - Make drivers/net/aironet4500_proc.c:driver_lock static.
      0c682373
  27. 05 Dec, 2002 1 commit
  28. 01 Dec, 2002 1 commit
  29. 29 Nov, 2002 1 commit
    • Steve Baur's avatar
      [PATCH] fs/namei.c fix · 6dc371f1
      Steve Baur authored
      One of Greg KH's security cleanups reversed the sense of a test.
      Without this patch, 2.5.50 oopses at boot.  Please apply.
      6dc371f1
  30. 27 Nov, 2002 1 commit
  31. 19 Nov, 2002 1 commit
    • Matthew Wilcox's avatar
      [PATCH] rename get_lease to break_lease · 9de88958
      Matthew Wilcox authored
      Al pointed out that the current name of get_lease is extremely confusing
      and I agree.
      
      This (a) renames it to break_lease and (b) fixes a bug noticed by Dave
      Hansen which could cause a NULL pointer dereference under high load.
      9de88958
  32. 18 Nov, 2002 1 commit
    • Maneesh Soni's avatar
      [PATCH] dcache usage cleanups · 3a708694
      Maneesh Soni authored
      This cleans up the dcache code to always use the proper dcache functions
      (d_unhashed and __d_drop) instead of accessing the dentry lists
      directly.
      
      In other words: use "d_unhashed(dentry)" instead of doing a manual
      "list_empty(&dentry->d_hash)" test.  And use "__d_drop(dentry)" instead
      of doing "list_del_init(&dentry->d_hash)" by hand.
      
      This will help the dcache-rcu patches.
      3a708694
  33. 16 Nov, 2002 1 commit
  34. 30 Oct, 2002 1 commit
    • Theodore Y. Ts'o's avatar
      Port of 0.8.50 acl-ms-posixacl patch to 2.5 · 14183fd4
      Theodore Y. Ts'o authored
      This patch (as well as the previous one) implements core ACL support
      which is needed for XFS as well as ext2/3 ACL support.  It causes umask
      handling to be skilled for inodes that contain POSIX acl's, so that the
      original mode information can be passed down to the low-level fs code,
      which will take care of handling the umask.
      14183fd4
  35. 17 Oct, 2002 1 commit
  36. 17 Sep, 2002 1 commit