1. 21 Feb, 2011 1 commit
  2. 24 Feb, 2011 4 commits
  3. 23 Feb, 2011 3 commits
  4. 21 Feb, 2011 1 commit
  5. 23 Feb, 2011 6 commits
  6. 22 Feb, 2011 3 commits
  7. 21 Feb, 2011 1 commit
    • Tao Ma's avatar
      ocfs2: Little refactoring against ocfs2_iget. · 6218b90e
      Tao Ma authored
      ocfs2_iget is used to get/create inode. Only iget5_locked
      will give us an inode = NULL. So move this check ahead of
      ocfs2_read_locked_inode so that we don't need to check
      inode before we read and unlock inode. This is also helpful
      for trace event(see the next patch).
      Signed-off-by: default avatarTao Ma <boyu.mt@taobao.com>
      6218b90e
  8. 22 Feb, 2011 1 commit
  9. 21 Feb, 2011 1 commit
  10. 22 Feb, 2011 6 commits
  11. 21 Feb, 2011 1 commit
    • Tao Ma's avatar
      ocfs2: Remove mlog(0) from fs/ocfs2/localalloc.c · a04733d8
      Tao Ma authored
      This is the 2nd step to remove the debug info of DISK_ALLOC.
      
      So this patch removes all mlog(0,...) from localalloc.c and adds
      the corresponding tracepoints. Different mlogs have different
      solutions.
      1. Some are replaced with trace event directly.
      2. Some are replaced while some new parameters are added.
      3. Some are combined into one trace events.
      4. Some redundant mlogs are removed.
      Signed-off-by: default avatarTao Ma <boyu.mt@taobao.com>
      a04733d8
  12. 22 Feb, 2011 1 commit
    • Tao Ma's avatar
      ocfs2: Remove mlog(0) from fs/ocfs2/alloc.c · a09d09b8
      Tao Ma authored
      This is the first try of replacing debug mlog(0,...) to
      trace events. Wengang has did some work in his original
      patch
      http://oss.oracle.com/pipermail/ocfs2-devel/2009-November/005513.html
      But he didn't finished it.
      
      So this patch removes all mlog(0,...) from alloc.c and adds
      the corresponding trace events. Different mlogs have different
      solutions.
      1. Some are replaced with trace event directly.
      2. Some are replaced and some new parameters are added since
         I think we need to know the btree owner in that case.
      3. Some are combined into one trace events.
      4. Some redundant mlogs are removed.
      What's more, it defines some event classes so that we can use
      them later.
      
      Cc: Wengang Wang <wen.gang.wang@oracle.com>
      Signed-off-by: default avatarTao Ma <boyu.mt@taobao.com>
      a09d09b8
  13. 21 Feb, 2011 1 commit
  14. 07 Mar, 2011 1 commit
    • Tao Ma's avatar
      ocfs2: Remove EXIT from masklog. · c1e8d35e
      Tao Ma authored
      mlog_exit is used to record the exit status of a function.
      But because it is added in so many functions, if we enable it,
      the system logs get filled up quickly and cause too much I/O.
      So actually no one can open it for a production system or even
      for a test.
      
      This patch just try to remove it or change it. So:
      1. if all the error paths already use mlog_errno, it is just removed.
         Otherwise, it will be replaced by mlog_errno.
      2. if it is used to print some return value, it is replaced with
         mlog(0,...).
      mlog_exit_ptr is changed to mlog(0.
      All those mlog(0,...) will be replaced with trace events later.
      Signed-off-by: default avatarTao Ma <boyu.mt@taobao.com>
      c1e8d35e
  15. 21 Feb, 2011 1 commit
    • Tao Ma's avatar
      ocfs2: Remove ENTRY from masklog. · ef6b689b
      Tao Ma authored
      ENTRY is used to record the entry of a function.
      But because it is added in so many functions, if we enable it,
      the system logs get filled up quickly and cause too much I/O.
      So actually no one can open it for a production system or even
      for a test.
      
      So for mlog_entry_void, we just remove it.
      for mlog_entry(...), we replace it with mlog(0,...), and they
      will be replace by trace event later.
      Signed-off-by: default avatarTao Ma <boyu.mt@taobao.com>
      ef6b689b
  16. 15 Mar, 2011 8 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 · 422e6c4b
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (57 commits)
        tidy the trailing symlinks traversal up
        Turn resolution of trailing symlinks iterative everywhere
        simplify link_path_walk() tail
        Make trailing symlink resolution in path_lookupat() iterative
        update nd->inode in __do_follow_link() instead of after do_follow_link()
        pull handling of one pathname component into a helper
        fs: allow AT_EMPTY_PATH in linkat(), limit that to CAP_DAC_READ_SEARCH
        Allow passing O_PATH descriptors via SCM_RIGHTS datagrams
        readlinkat(), fchownat() and fstatat() with empty relative pathnames
        Allow O_PATH for symlinks
        New kind of open files - "location only".
        ext4: Copy fs UUID to superblock
        ext3: Copy fs UUID to superblock.
        vfs: Export file system uuid via /proc/<pid>/mountinfo
        unistd.h: Add new syscalls numbers to asm-generic
        x86: Add new syscalls for x86_64
        x86: Add new syscalls for x86_32
        fs: Remove i_nlink check from file system link callback
        fs: Don't allow to create hardlink for deleted file
        vfs: Add open by file handle support
        ...
      422e6c4b
    • Trond Myklebust's avatar
      VFS: Fix the nfs sillyrename regression in kernel 2.6.38 · c83ce989
      Trond Myklebust authored
      The new vfs locking scheme introduced in 2.6.38 breaks NFS sillyrename
      because the latter relies on being able to determine the parent
      directory of the dentry in the ->iput() callback in order to send the
      appropriate unlink rpc call.
      
      Looking at the code that cares about races with dput(), there doesn't
      seem to be anything that specifically uses d_parent as a test for
      whether or not there is a race:
        - __d_lookup_rcu(), __d_lookup() all test for d_hashed() after d_parent
        - shrink_dcache_for_umount() is safe since nothing else can rearrange
          the dentries in that super block.
        - have_submount(), select_parent() and d_genocide() can test for a
          deletion if we set the DCACHE_DISCONNECTED flag when the dentry
          is removed from the parent's d_subdirs list.
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      Cc: stable@kernel.org (2.6.38, needs commit c826cb7d "dcache.c:
      	create helper function for duplicated functionality" )
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c83ce989
    • Linus Torvalds's avatar
      dcache.c: create helper function for duplicated functionality · c826cb7d
      Linus Torvalds authored
      This creates a helper function for he "try to ascend into the parent
      directory" case, which was written out in triplicate before.  With all
      the locking and subtle sequence number stuff, we really don't want to
      duplicate that kind of code.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c826cb7d
    • Al Viro's avatar
      tidy the trailing symlinks traversal up · 574197e0
      Al Viro authored
      * pull the handling of current->total_link_count into
      __do_follow_link()
      * put the common "do ->put_link() if needed and path_put() the link"
        stuff into a helper (put_link(nd, link, cookie))
      * rename __do_follow_link() to follow_link(), while we are at it
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      574197e0
    • Al Viro's avatar
      Turn resolution of trailing symlinks iterative everywhere · b356379a
      Al Viro authored
      The last remaining place (resolution of nested symlink) converted
      to the loop of the same kind we have in path_lookupat() and
      path_openat().
      
      Note that we still *do* have a recursion in pathname resolution;
      can't avoid it, really.  However, it's strictly for nested symlinks
      now - i.e. ones in the middle of a pathname.
      
      link_path_walk() has lost the tail now - it always walks everything
      except the last component.
      
      do_follow_link() renamed to nested_symlink() and moved down.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      b356379a
    • Al Viro's avatar
      simplify link_path_walk() tail · ce052544
      Al Viro authored
      Now that link_path_walk() is called without LOOKUP_PARENT
      only from do_follow_link(), we can simplify the checks in
      last component handling.  First of all, checking if we'd
      arrived to a directory is not needed - the caller will check
      it anyway.  And LOOKUP_FOLLOW is guaranteed to be there,
      since we only get to that place with nd->depth > 0.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      ce052544
    • Al Viro's avatar
      Make trailing symlink resolution in path_lookupat() iterative · bd92d7fe
      Al Viro authored
      Now the only caller of link_path_walk() that does *not* pass
      LOOKUP_PARENT is do_follow_link()
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      bd92d7fe
    • Al Viro's avatar
      update nd->inode in __do_follow_link() instead of after do_follow_link() · b21041d0
      Al Viro authored
      ... and note that we only need to do it for LAST_BIND symlinks
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      b21041d0