Re: [PATCH] xfs: xfs: fallback to vmalloc for large buffers in xfs_attrlist_by_handle

Mark Tinguely
2013-04-16T13:37:08Z

On 04/04/13 00:05, Eric Sandeen wrote:
> On 4/3/13 10:52 PM, Dave Chinner wrote:
>> On Wed, Apr 03, 2013 at 03:52:49PM -0700, Linda Walsh wrote:
>>>
>>> Note -- I might have more attributes than some as the disks are shared via samba
>>> w/windows
>>> and samba stores ACL and xattr info from windows in xfs's attrs...
>>>
>>>
>>> xfsdump: WARNING: could not get list of root attributes for nondir ino
>>> 3412893285: Cannot allocate memory (12)
>>
>> ....
>>> [1007383.689492] xfsdump: page allocation failure: order:4, mode:0x10c0d0
>> ....
>>> [1007383.689531] [<ffffffff81143a54>] kmalloc_order_trace+0x34/0xe0
>>> [1007383.689534] [<ffffffff81146546>] __kmalloc+0x186/0x190
>>> [1007383.689541] [<ffffffff8124263c>] xfs_attrlist_by_handle+0x8c/0x110
>>> [1007383.689544] [<ffffffff81243487>] xfs_file_ioctl+0x437/0xb60
>>
>> So it's the attribute handle interfaces that need the vmalloc
>> treatment here, just like has been done for all the other attribute
>> interfaces....
>
> Like this?
>
> From: Eric Sandeen<sandeen@redhat.com>
>
> xfs: fallback to vmalloc for large buffers in xfs_attrlist_by_handle
>
> Shamelessly copied from dchinner's:
> ad650f5b xfs: fallback to vmalloc for large buffers in xfs_attrmulti_attr_get
>
> xfsdump uses for a large buffer for extended attributes, which has a
> kmalloc'd shadow buffer in the kernel. This can fail after the
> system has been running for some time as it is a high order
> allocation. Add a fallback to vmalloc so that it doesn't require
> contiguous memory and so won't randomly fail while xfsdump is
> running.
>
> Signed-off-by: Eric Sandeen<sandeen@redhat.com>
> ---
>
> built& tested by running through xfstests ./check -g dump

Looks good. It is needed here too.

Reviewed-by: Mark Tinguely <tinguely@sgi.com>