1. 09 Mar, 2019 7 commits
    • J. R. Okajima's avatar
      aufs: fuse branch (including poll(2)) · 08ecca6f
      J. R. Okajima authored
      
      
      Fuse doesn't want the callers to access the inode attributes without
      issuing stat, and it is not assured that they are valid after lookup or
      iget().
      The inode attribute is critical for aufs, and aufs decided to call stat
      every time for fuse.
      Of course, it makes aufs slow. But when the branch fs is not fuse, stat
      is not called.
      
      Currently, only FUSE implements ->poll(), and aufs supports it.
      Signed-off-by: default avatarJ. R. Okajima <hooanon05g@gmail.com>
      08ecca6f
    • J. R. Okajima's avatar
      aufs: hfsplus branch · 5bb71622
      J. R. Okajima authored
      
      
      Special support for filesystems which acquires an inode mutex at final
      closing a file, eg, hfsplus.
      This trick is very simple and stupid, just to open the file before really
      necessary open to tell hfsplus that this is not the final closing.
      The caller should call au_h_open_pre() after acquiring the inode mutex,
      and au_h_open_post() after releasing it.
      Signed-off-by: default avatarJ. R. Okajima <hooanon05g@gmail.com>
      5bb71622
    • J. R. Okajima's avatar
      aufs: fhsm (file-based hierarchical storage management) · 3be35a97
      J. R. Okajima authored
      
      
      This feature automatically handles MVDOWN in other commits.
      In user-space, a daemon monitors the free space of the branch and issues
      MVDOWN ioctl automatically when necessary. The main role is in
      user-space and several options are implemented.
      For a branch to join the FHSM circle, a new attribute 'fhsm' should be
      specified.
      
      See also the document in this commit.
      Signed-off-by: default avatarJ. R. Okajima <hooanon05g@gmail.com>
      3be35a97
    • J. R. Okajima's avatar
      aufs: diropq_[aw] options · c0ec0e0e
      J. R. Okajima authored
      
      
      These are very old options.
      Since Unionfs created 'diropq' unconditionally in mkdir(2), old users
      may expect the same behaviour. But there are cases where 'diropq' is
      unnecessary. The aufs default behaviour is to create 'diropq' only when
      it is necessary.
      Signed-off-by: default avatarJ. R. Okajima <hooanon05g@gmail.com>
      c0ec0e0e
    • J. R. Okajima's avatar
      aufs: dirren 4/6, rename with saving the rename info · 39d4a736
      J. R. Okajima authored
      
      
      When DIRREN is enabled and activated, the error case where
      aufs rename(2) used to return EXDEV will be gone.
      Aufs rename(2) registers the renaming dir inum to the list in the
      branch, creates the detailed info file, and returns a success.
      
      If udba=notify option is specified with dirren, the internal detection
      may not work correctly since aufs may not be able to find the target
      name.
      Signed-off-by: default avatarJ. R. Okajima <hooanon05g@gmail.com>
      39d4a736
    • J. R. Okajima's avatar
      aufs: dirwh option · 0b7972a4
      J. R. Okajima authored
      
      
      This is a feature to optimize for rmdir and rename dir.
      When the number of whiteouts under the target dir is very many, it may
      take a long time to remove them all. To prevent this, 'dirwh=%d' option
      specifies the watermark to decide when to remove them.
      
      For details, see aufs manual in aufs-util.git.
      Signed-off-by: default avatarJ. R. Okajima <hooanon05g@gmail.com>
      0b7972a4
    • J. R. Okajima's avatar
      aufs: inode op, rename 2/2, body · 2902df92
      J. R. Okajima authored
      
      
      Implement i_op->rename().
      This is a big monster and I don't like it.
      
      In this version, the copy-up always happen.
      Signed-off-by: default avatarJ. R. Okajima <hooanon05g@gmail.com>
      2902df92