[Lustre-devel] async write and abort_recov
Alexey Lyashkov
alexey.lyashkov at clusterstor.com
Thu Jul 15 12:25:18 PDT 2010
On Jul 15, 2010, at 21:57, John Hammond wrote:
> On 07/15/2010 11:19 AM, Andreas Dilger wrote:
>> On 2010-07-15, at 02:05, Aurelien Degremont wrote:
>>> Andreas Dilger a écrit :
>>>> While I know Lustre will save errors from async write RPCs into
>>>> the file descriptor for later write calls or fsync), I don't know
>>>> if we save any IO error into the file descriptor if we discard
>>>> pages due to eviction. I think only errors due to currently
>>>> in-flight RPCs that are aborted due to client eviction are
>>>> returned.
>
> If the async write fails due to eviction then writepage() will store
> -ESHUTDOWN in the inode info's lli_async_rc member.
no sure. look to ll_ap_completion to correct error reporting.
} else {
if (cmd & OBD_BRW_READ) {
llap->llap_defer_uptodate = 0;
}
SetPageError(page);
if (rc == -ENOSPC)
set_bit(AS_ENOSPC, &page->mapping->flags);
else
set_bit(AS_EIO, &page->mapping->flags);
}
but that codepath never called if client has dirty data, but async IO don't started.
in that case, client canceled owned locks with local + discard flags set, so ll_page_removal_cb called with discard flag set and error bit don't set in mapping.
--------------------------------------
Alexey Lyashkov
alexey.lyashkov at clusterstor.com
More information about the lustre-devel
mailing list