Re: [RFC -v2 7/8] btrfs: Prevent from early transaction abort

2015-08-19 Thread Michal Hocko
On Tue 18-08-15 19:29:14, Michal Hocko wrote: > On Tue 18-08-15 13:11:44, Chris Mason wrote: > > On Tue, Aug 18, 2015 at 12:40:32PM +0200, Michal Hocko wrote: > > > From: Michal Hocko > > > > > > Btrfs relies on GFP_NOFS allocation when commiting the transaction but > > > since "mm: page_alloc:

Re: [RFC -v2 7/8] btrfs: Prevent from early transaction abort

2015-08-19 Thread Michal Hocko
On Tue 18-08-15 19:29:14, Michal Hocko wrote: On Tue 18-08-15 13:11:44, Chris Mason wrote: On Tue, Aug 18, 2015 at 12:40:32PM +0200, Michal Hocko wrote: From: Michal Hocko mho...@suse.com Btrfs relies on GFP_NOFS allocation when commiting the transaction but since mm: page_alloc:

Re: [RFC -v2 7/8] btrfs: Prevent from early transaction abort

2015-08-18 Thread Michal Hocko
On Tue 18-08-15 13:11:44, Chris Mason wrote: > On Tue, Aug 18, 2015 at 12:40:32PM +0200, Michal Hocko wrote: > > From: Michal Hocko > > > > Btrfs relies on GFP_NOFS allocation when commiting the transaction but > > since "mm: page_alloc: do not lock up GFP_NOFS allocations upon OOM" > > those

Re: [RFC -v2 7/8] btrfs: Prevent from early transaction abort

2015-08-18 Thread Chris Mason
On Tue, Aug 18, 2015 at 12:40:32PM +0200, Michal Hocko wrote: > From: Michal Hocko > > Btrfs relies on GFP_NOFS allocation when commiting the transaction but > since "mm: page_alloc: do not lock up GFP_NOFS allocations upon OOM" > those allocations are allowed to fail which can lead to a

Re: [RFC -v2 7/8] btrfs: Prevent from early transaction abort

2015-08-18 Thread Michal Hocko
On Tue 18-08-15 12:40:31, Michal Hocko wrote: [...] > @@ -4867,9 +4865,7 @@ struct extent_buffer *alloc_extent_buffer(struct > btrfs_fs_info *fs_info, > return NULL; > > for (i = 0; i < num_pages; i++, index++) { > - p = find_or_create_page(mapping, index,

[RFC -v2 7/8] btrfs: Prevent from early transaction abort

2015-08-18 Thread Michal Hocko
From: Michal Hocko Btrfs relies on GFP_NOFS allocation when commiting the transaction but since "mm: page_alloc: do not lock up GFP_NOFS allocations upon OOM" those allocations are allowed to fail which can lead to a pre-mature transaction abort: [ 55.328093] Call Trace: [ 55.328890] []

[RFC -v2 7/8] btrfs: Prevent from early transaction abort

2015-08-18 Thread Michal Hocko
From: Michal Hocko mho...@suse.com Btrfs relies on GFP_NOFS allocation when commiting the transaction but since mm: page_alloc: do not lock up GFP_NOFS allocations upon OOM those allocations are allowed to fail which can lead to a pre-mature transaction abort: [ 55.328093] Call Trace: [

Re: [RFC -v2 7/8] btrfs: Prevent from early transaction abort

2015-08-18 Thread Michal Hocko
On Tue 18-08-15 12:40:31, Michal Hocko wrote: [...] @@ -4867,9 +4865,7 @@ struct extent_buffer *alloc_extent_buffer(struct btrfs_fs_info *fs_info, return NULL; for (i = 0; i num_pages; i++, index++) { - p = find_or_create_page(mapping, index, GFP_NOFS); -

Re: [RFC -v2 7/8] btrfs: Prevent from early transaction abort

2015-08-18 Thread Michal Hocko
On Tue 18-08-15 13:11:44, Chris Mason wrote: On Tue, Aug 18, 2015 at 12:40:32PM +0200, Michal Hocko wrote: From: Michal Hocko mho...@suse.com Btrfs relies on GFP_NOFS allocation when commiting the transaction but since mm: page_alloc: do not lock up GFP_NOFS allocations upon OOM those

Re: [RFC -v2 7/8] btrfs: Prevent from early transaction abort

2015-08-18 Thread Chris Mason
On Tue, Aug 18, 2015 at 12:40:32PM +0200, Michal Hocko wrote: From: Michal Hocko mho...@suse.com Btrfs relies on GFP_NOFS allocation when commiting the transaction but since mm: page_alloc: do not lock up GFP_NOFS allocations upon OOM those allocations are allowed to fail which can lead to a