Messages in this thread | | | Date | Thu, 28 Oct 2010 10:19:49 -0400 | From | Christoph Hellwig <> | Subject | Re: [PATCH 2/3] fs: move i_wb_list out from under inode_lock |
| |
> + * Write out an inode's dirty pages. Called under inode_wb_list_lock. Either > + * the caller has ref on the inode (either via __iget or via syscall against an > + * fd) or the inode has I_WILL_FREE set.
Just drop mentioning of how we got the reference ,it's rather pointless.
> writeback_single_inode(struct inode *inode, struct writeback_control *wbc) > @@ -354,7 +368,7 @@ writeback_single_inode(struct inode *inode, struct writeback_control *wbc) > inode->i_state |= I_SYNC; > inode->i_state &= ~I_DIRTY_PAGES; > spin_unlock(&inode->i_lock); > - spin_unlock(&inode_lock); > + spin_unlock(&inode_wb_list_lock);
We don't actually need inode_wb_list_lock here. But I guess we can fix this later and be conservative for now.
> @@ -963,63 +976,62 @@ void __mark_inode_dirty(struct inode *inode, int flags)
I think the __mark_inode_dirty cleanup should be a separate patch, it's rather confusing in the current form.
> + if (was_dirty) { > +out_unlock_inode: > spin_unlock(&inode->i_lock); > + return; > + }
Please just move the label to the end of the function and add another goto here.
| |