Re: [patch 29/52] fs: icache lock i_count

From: Dave Chinner
Date: Wed Jun 30 2010 - 03:28:03 EST


On Thu, Jun 24, 2010 at 01:02:41PM +1000, npiggin@xxxxxxx wrote:
> Protect inode->i_count with i_lock, rather than having it atomic.
> Next step should also be to move things together (eg. the refcount increment
> into d_instantiate, which will remove a lock/unlock cycle on i_lock).
.....
> Index: linux-2.6/fs/inode.c
> ===================================================================
> --- linux-2.6.orig/fs/inode.c
> +++ linux-2.6/fs/inode.c
> @@ -33,14 +33,13 @@
> * inode_hash_lock protects:
> * inode hash table, i_hash
> * inode->i_lock protects:
> - * i_state
> + * i_state, i_count
> *
> * Ordering:
> * inode_lock
> * sb_inode_list_lock
> * inode->i_lock
> - * inode_lock
> - * inode_hash_lock
> + * inode_hash_lock
> */

I thought that the rule governing the use of inode->i_lock was that
it can be used anywhere as long as it is the innermost lock.

Hmmm, no references in the code or documentation. Google gives a
pretty good reference:

http://www.mail-archive.com/linux-ext4@xxxxxxxxxxxxxxx/msg02584.html

Perhaps a different/new lock needs to be used here?

Cheers,

Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/