Re: locking rules for ->dirty_inode()

From: Andrew Morton (
Date: Fri Sep 20 2002 - 11:47:13 EST

Nikita Danilov wrote:
> ...
> Actually, I came over this while trying to describe lock ordering in
> reiser4 after I just started integrating other kernel locks there. I
> wonder, has somebody already done this, writing up kernel lock
> hierarchy, that is?

I've been keeping the comment at the top of filemap.c uptodate when
I discover things. It got smaller a while ago when certain rude
locks were spoken to.

Really, this form of representation isn't rich enough, but the
format certainly provides enough info to know when you might be
taking locks in the wrong order, and it tells you where to look
to see them being taken.

The problem with the format is that locks are only mentioned once,
and it can't describe the whole graph. Maybe it needs something

 * ->i_shared_lock (vmtruncate)
 * ->private_lock (__free_pte->__set_page_dirty_buffers)
 * ->swap_list_lock
 * ->swap_device_lock (exclusive_swap_page, others)
 * ->mapping->page_lock
 * ->inode_lock (__mark_inode_dirty)
 * ->sb_lock (fs/fs-writeback.c)
+* ->i_shared_lock
+* ->page_table_lock (lots of places)

Don't know. Maybe someone somewhere has developed a notation
for this? How are you doing it?
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

This archive was generated by hypermail 2b29 : Mon Sep 23 2002 - 22:00:31 EST