View Incident:
http://co-op.engr.sgi.com/BugWorks/code/bwxquery.cgi?search=Search&wlong=1&view_type=Bug&wi=787669
Submitter : mostek Submitter Domain : sgi.com
Assigned Engineer : ananth Assigned Domain : engr
Assigned Group : xfs-linux Category : software
Customer Reported : F Priority : 2
Project : xfs-linux Status : open
Description :
Got into a situation where the use count for the page_buf_locking
module was greater than zero, even though the xfs module had been
unloaded, and therefore I am unable to unload the module. A quick
look around, found this:
xfs_super.c:
void
linvfs_release_inode(struct inode *inode)
{
if (inode) {
pagebuf_lock_disable(inode);
truncate_inode_pages(&inode->i_data, 0L);
iput(inode);
}
}
however, pagebuf_lock_disable() in page_buf_locking.c can return with
-EBUSY without decrementing the use count.
The call to pagebuf_lock_disable() should probably be in a loop
checking the return value, but I wasn't sure whether this would be
safe...
Ivan
--
Ivan Rayner
ivanr@xxxxxxxxxxxxxxxxx
|