1. 03 Aug, 2019 1 commit
    • J. R. Okajima's avatar
      aufs: minor, for userspace, don't use typeof · c4ea0e0a
      J. R. Okajima authored
      
      
      This is detected by the commit in v5.3-rc1,
      	d6fc9fcbaa65 2019-07-08 kbuild: compile-test exported headers to
      		ensure they are self-contained
      But the issue is not for v5.3-rc1 only I am afraid.  So this commit is
      brought to aufs4.14 which is my current development base.
      Signed-off-by: default avatarJ. R. Okajima <hooanon05g@gmail.com>
      (cherry picked from commit d38615f7fef1c65e30e3cc418daa9e19c93ed98f)
      c4ea0e0a
  2. 07 Jun, 2019 3 commits
    • J. R. Okajima's avatar
      aufs: bugfix, no nested RCU for kfree() · 0e79e96a
      J. R. Okajima authored
      
      Signed-off-by: default avatarJ. R. Okajima <hooanon05g@gmail.com>
      (cherry picked from commit 4596850541ed7144f7fea951d02f0f6251c4a997)
      0e79e96a
    • J. R. Okajima's avatar
      aufs: possible bugfix, ignore the being freed sbinfo object · 01a1817a
      J. R. Okajima authored
      
      
      The scenario is very similar to previous commit
      "aufs: bugfix, ignore the being freed dynop object".
      One exception is that this commit is for sbinfo object which is managed
      by kobject (instead of kref).
      
      In order to enter the plink-maintenance mode, users write an ID to
      "/proc/fs/aufs/plink_maint" (this path is defined as macros in
      include/uapi/linux/aufs_type.h).  If someone else is unmounting the
      aufs mount corresponding that ID, then the searcher task may find a
      being freed sbinfo object.
      The problem and the fix is very similar to previous commit
      "aufs: bugfix, ignore the being freed dynop object".
      Signed-off-by: default avatarJ. R. Okajima <hooanon05g@gmail.com>
      (cherry picked from commit 949b498ae30797b19b9e7ac9b230815f31ffe378)
      01a1817a
    • J. R. Okajima's avatar
      aufs: bugfix, ignore the being freed dynop object · e870e818
      J. R. Okajima authored
      
      
      Aufs DYNOP (Dynamically customizable FS operations) object is managed by
      kref, and when its counter reaches zero, the callback function removes
      the object from the internal list which is protected by a spinlock and
      then frees the object.
      Here there is a small time window between
      A: the counter reaches zero, and
      B: require the lock to remove the object from the list.
      If someone else acquires the lock and searches the list, it may find the
      counter-zero'ed object which means the object is being freed.
      This commit ignores the object whose counter is already zero.
      Reported-and-tested-by: default avatarKirill Kolyshkin <kolyshkin@gmail.com>
      Signed-off-by: default avatarJ. R. Okajima <hooanon05g@gmail.com>
      (cherry picked from commit b633d7b2635b9615fe294b85257d05008e3747a3)
      e870e818
  3. 27 May, 2019 3 commits
  4. 09 Mar, 2019 33 commits