Message ID | 1536959008-17291-1-git-send-email-bo.liu@linux.alibaba.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] Btrfs: remove wait_ordered_rane in btrfs_evict_inode | expand |
On Sat, Sep 15, 2018 at 05:03:28AM +0800, Liu Bo wrote: > When we delete an inode, > > btrfs_evict_inode() { > truncate_inode_pages_final() > truncate_inode_pages_range() > lock_page() > truncate_cleanup_page() > btrfs_invalidatepage() > wait_on_page_writeback > btrfs_lookup_ordered_range() > cancel_dirty_page() > unlock_page() > ... > btrfs_wait_ordered_range() > ... > > As VFS has called ->invalidatepage() to get all ordered extents done > (if there is any) and truncated all page cache pages (no dirty pages > to writeback after this step), wait_ordered_range() is just a noop. > > Reviewed-by: David Sterba <dsterba@suse.com> > Signed-off-by: Liu Bo <bo.liu@linux.alibaba.com> > --- > v2: More details in the description. Thanks, patch updated.
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index ff1d2ed2dc94..d3febc3a6bc0 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -5390,9 +5390,6 @@ void btrfs_evict_inode(struct inode *inode) if (is_bad_inode(inode)) goto no_delete; - /* do we really want it for ->i_nlink > 0 and zero btrfs_root_refs? */ - if (!special_file(inode->i_mode)) - btrfs_wait_ordered_range(inode, 0, (u64)-1); btrfs_free_io_failure_record(BTRFS_I(inode), 0, (u64)-1);