Re: [patch 6/9] mm + fs: store shadow entries in page cache

Peter Zijlstra
2013-11-26T10:21:27Z

On Tue, Nov 26, 2013 at 10:17:16AM +1100, Dave Chinner wrote:
> void truncate_inode_pages_final(struct address_space *mapping)
> {
> mapping_set_exiting(mapping);
> if (inode->i_data.nrpages || inode->i_data.nrshadows) {
> /*
> * spinlock barrier to ensure all modifications are
> * complete before we do the final truncate
> */
> spin_lock_irq(&mapping->tree_lock);
> spin_unlock_irq(&mapping->tree_lock);

spin_unlock_wait() ?

Its cheaper, but prone to starvation; its typically useful when you're
waiting for the last owner to go away and know there won't be any new
ones around.

> truncate_inode_pages_range(mapping, 0, (loff_t)-1);
> }