If updating the inode gave us an ENOSPC we were just returning in page_mkwrite, which is a problem since we make our reservation right before trying to update the inode, so fix the out label so that we actually free our reservation. Thanks, Signed-off-by: Josef Bacik <josef@redhat.com> --- fs/btrfs/inode.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index b0d7777..90a32f1 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -6509,8 +6509,8 @@ out_unlock: if (!ret) return VM_FAULT_LOCKED; unlock_page(page); - btrfs_delalloc_release_space(inode, PAGE_CACHE_SIZE); out: + btrfs_delalloc_release_space(inode, PAGE_CACHE_SIZE); return ret; } -- 1.7.5.2 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
David Sterba
2012-Jan-11 14:27 UTC
Re: [PATCH] Btrfs: release space on error in page_mkwrite
On Tue, Jan 10, 2012 at 02:20:18PM -0500, Josef Bacik wrote:> If updating the inode gave us an ENOSPC we were just returning in page_mkwrite, > which is a problem since we make our reservation right before trying to update > the inode, so fix the out label so that we actually free our reservation. > Thanks, > > Signed-off-by: Josef Bacik <josef@redhat.com>Tested-by: David Sterba <dsterba@suse.cz> reproducer: while :;do ./check 209;done and some writeback activity, i used compilation or multithreaed random writes via fio. the warning WARNING: at fs/btrfs/extent-tree.c:7283 btrfs_free_block_groups+0x25b/0x370 appeared within minutes. david -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
David Sterba
2012-Jan-12 11:59 UTC
Re: [PATCH] Btrfs: release space on error in page_mkwrite
On Wed, Jan 11, 2012 at 03:27:09PM +0100, David Sterba wrote:> On Tue, Jan 10, 2012 at 02:20:18PM -0500, Josef Bacik wrote: > WARNING: at fs/btrfs/extent-tree.c:7283 btrfs_free_block_groups+0x25b/0x370 > > appeared within minutes.Sorry, I spoke too soon, the test was running overnight and the warning is there. I''ll send you updated logs and traces. david -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html