xfs
[Top] [All Lists]

[PATCH 0/2] xfs: RCU inode freeing and lookups V3

To: xfs@xxxxxxxxxxx
Subject: [PATCH 0/2] xfs: RCU inode freeing and lookups V3
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Mon, 13 Dec 2010 12:32:34 +1100
Cc: paulmck@xxxxxxxxxxxxxxxxxx, eric.dumazet@xxxxxxxxx
This series converts the XFS inode cache to use RCU freeing
for freeing of the inodes and uses RCU locking for all the lookups.
It uses the ip->i_ino values and ip->i_flags & XFS_IRECLAIM being
checked under the ip->i_flags_lock to detect inodes that have been
freed during lookups.

Version 3:
- add patch for specific RCU freeing of inodes rather than relying
  on an external tree to provide RCU freeing functionality. This
  uses standard RCU freeing mechanisms rather than
  SLAB_DESTROY_BY_RCU. This is kept as a separate patch to minimise
  the merge conflict issues that may arise if the change is made
  through VFS code first.
- Drop specific references to SLAB_DESTROY_BY_RCU, but keep all the
  lookup guards for reclaimed/reused inodes as they are mostly the
  same for both methods of RCU inode freeing.

Version 2:
- check ip->i_ino under i_flags lock on cache hit
- remove duplicate ip->i_ino == 0 check in xfs_dqrele_inode
- Fixed inode cluster walks to check for valid i_ino under
  i_flags_lock.
- Fixed ag walk lookups to check i_ino under i_flags_lock.

<Prev in Thread] Current Thread [Next in Thread>