Linus, Submitted this to Al a few days ago with no response. I later ran across a message from him saying that this was on his list of things to do, so I hope I'm not duplicating work. The following patch moves the BKL out of notify_change() and into the individual filesystems. There was an attempt to remove the BKL from the function here: http://groups.google.com/groups?hl=en&selm=20020118043308.B9A75B581%40smtp.transgeek.com.lucky.linux.kernel However, it looks to me like Craig's I_ATTR_LOCK bit in i_state plus the inode_lock just about equals a semaphore. Craig agreed that a semaphore was equivalent, but pointed out that his approach is more efficient with space than adding a semaphore to struct inode. My patch adds a semaphore to the inode structure, removes the BKL from notify_change(), and shifts the BKL into the individual filesystems' setattr() functions. I doubt that many of them actually need it, but I figure the FS maintainers can remove it. When I posted the original version, Richard Gooch let me know that devfs didn't need it, so I removed that part. The BKL use in notify_change() is replaced by the semaphore i_attr_lock. It might be possible to use i_sem instead, but at least one filesystem (UMSDOS) already uses i_sem in its notify function. -- Dave Hansen haveblue@us.ibm.com