1. 28 7月, 2010 1 次提交
    • E
      fsnotify: use unsigned char * for dentry->d_name.name · 59b0df21
      Eric Paris 提交于
      fsnotify was using char * when it passed around the d_name.name string
      internally but it is actually an unsigned char *.  This patch switches
      fsnotify to use unsigned and should silence some pointer signess warnings
      which have popped out of xfs.  I do not add -Wpointer-sign to the fsnotify
      code as there are still issues with kstrdup and strlen which would pop
      out needless warnings.
      Signed-off-by: NEric Paris <eparis@redhat.com>
      59b0df21
  2. 28 5月, 2010 1 次提交
    • N
      VFS: fix recent breakage of FS_REVAL_DOT · 176306f5
      Neil Brown 提交于
      Commit 1f36f774 broke FS_REVAL_DOT semantics.
      
      In particular, before this patch, the command
         ls -l
      in an NFS mounted directory would always check if the directory on the server
      had changed and if so would flush and refill the pagecache for the dir.
      After this patch, the same "ls -l" will repeatedly return stale date until
      the cached attributes for the directory time out.
      
      The following patch fixes this by ensuring the d_revalidate is called by
      do_last when "." is being looked-up.
      link_path_walk has already called d_revalidate, but in that case LOOKUP_OPEN
      is not set so nfs_lookup_verify_inode chooses not to do any validation.
      
      The following patch restores the original behaviour.
      
      Cc: stable@kernel.org
      Signed-off-by: NNeilBrown <neilb@suse.de>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      176306f5
  3. 22 5月, 2010 1 次提交
  4. 15 5月, 2010 1 次提交
    • A
      Fix the regression created by "set S_DEAD on unlink()..." commit · d83c49f3
      Al Viro 提交于
      1) i_flags simply doesn't work for mount/unlink race prevention;
      we may have many links to file and rm on one of those obviously
      shouldn't prevent bind on top of another later on.  To fix it
      right way we need to mark _dentry_ as unsuitable for mounting
      upon; new flag (DCACHE_CANT_MOUNT) is protected by d_flags and
      i_mutex on the inode in question.  Set it (with dont_mount(dentry))
      in unlink/rmdir/etc., check (with cant_mount(dentry)) in places
      in namespace.c that used to check for S_DEAD.  Setting S_DEAD
      is still needed in places where we used to set it (for directories
      getting killed), since we rely on it for readdir/rmdir race
      prevention.
      
      2) rename()/mount() protection has another bogosity - we unhash
      the target before we'd checked that it's not a mountpoint.  Fixed.
      
      3) ancient bogosity in pivot_root() - we locked i_mutex on the
      right directory, but checked S_DEAD on the different (and wrong)
      one.  Noticed and fixed.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      d83c49f3
  5. 13 5月, 2010 1 次提交
  6. 27 3月, 2010 1 次提交
  7. 07 3月, 2010 1 次提交
  8. 05 3月, 2010 19 次提交
  9. 04 3月, 2010 3 次提交
  10. 19 2月, 2010 1 次提交
  11. 09 2月, 2010 2 次提交
  12. 07 2月, 2010 2 次提交
  13. 04 2月, 2010 1 次提交
  14. 14 1月, 2010 3 次提交
    • A
      Fix the -ESTALE handling in do_filp_open() · 9850c056
      Al Viro 提交于
      Instead of playing sick games with path saving, cleanups, just retry
      the entire thing once with LOOKUP_REVAL added.  Post-.34 we'll convert
      all -ESTALE handling in there to that style, rather than playing with
      many retry loops deep in the call chain.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      9850c056
    • A
      Fix ACC_MODE() for real · 6d125529
      Al Viro 提交于
      commit 5300990c had stepped on a rather
      nasty mess: definitions of ACC_MODE used to be different.  Fixed the
      resulting breakage, converting them to variant that takes O_... value;
      all callers have that and it actually simplifies life (see tomoyo part
      of changes).
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      6d125529
    • A
      fix autofs/afs/etc. magic mountpoint breakage · 86acdca1
      Al Viro 提交于
      We end up trying to kfree() nd.last.name on open("/mnt/tmp", O_CREAT)
      if /mnt/tmp is an autofs direct mount.  The reason is that nd.last_type
      is bogus here; we want LAST_BIND for everything of that kind and we
      get LAST_NORM left over from finding parent directory.
      
      So make sure that it *is* set properly; set to LAST_BIND before
      doing ->follow_link() - for normal symlinks it will be changed
      by __vfs_follow_link() and everything else needs it set that way.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      86acdca1
  15. 31 12月, 2009 1 次提交
  16. 23 12月, 2009 1 次提交