1. 09 Mar, 2019 6 commits
    • 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: atomic_open 4/5, introduce au_aopen_or_create() · 47170bb7
      J. R. Okajima authored
      
      
      This new function au_aopen_or_create() tries calling branch fs's
      ->atomic_open() first. If it is not set, call vfs_create() instead.
      By putting this behaviour into aufs's add_simple(), many codes can be
      shared.
      Signed-off-by: default avatarJ. R. Okajima <hooanon05g@gmail.com>
      47170bb7
    • J. R. Okajima's avatar
      aufs: inode op, add, link · 39391364
      J. R. Okajima authored
      
      
      Implement i_op->link().
      As aufs supports 'pseudo-link', aufs_link() can make it without
      copying-up. In the case of aufs_link() has to copy-up, the name of the
      target file is used as-is, and it is pseudo-linked. In other words,
      calling link(2) after the copy-up is unnecessary.
      
      See also struct.txt in previous commit.
      Signed-off-by: default avatarJ. R. Okajima <hooanon05g@gmail.com>
      39391364
    • J. R. Okajima's avatar
      aufs: inode op, add an entry · 78db268b
      J. R. Okajima authored
      
      
      Here are entry adding inode operations, i_op->create(), symlink(),
      mkdir(), mknod(), and tmpfile().
      Obviously they return EOPNOTSUPP when the target branch fs doesn't
      support the operation.
      Signed-off-by: default avatarJ. R. Okajima <hooanon05g@gmail.com>
      78db268b