xfs
[Top] [All Lists]

Re: xfs_file_splice_read: possible circular locking dependency detected

To: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Subject: Re: xfs_file_splice_read: possible circular locking dependency detected
From: Nicholas Piggin <npiggin@xxxxxxxxx>
Date: Mon, 19 Sep 2016 17:26:23 +1000
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>, Dave Chinner <david@xxxxxxxxxxxxx>, CAI Qian <caiqian@xxxxxxxxxx>, linux-xfs <linux-xfs@xxxxxxxxxxxxxxx>, xfs@xxxxxxxxxxx, Jens Axboe <axboe@xxxxxxxxx>, linux-fsdevel@xxxxxxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:in-reply-to:references :organization:mime-version:content-transfer-encoding; bh=XA89LCUsPhJDjJ/wNzxMWP676QXAFcCHWrSu/ZUs8vg=; b=tgBzSeQaEuJl7JjXiVZ61nIgHKXn+5pZm4fFrwMPCXJ4WvlH0mnPzCoClCjaM9lQmL qg/BB+ZY7w9mSyx2ZlMqF5HP/PV08Gx6DANL2nE72zRR/TX/ihhNDmdb07L+qwIpHIxs hy+27IHJUFnXSaYTrBJXRWGsgt92SR9AmnFVhYacGM7N8wI/c/N8tT5BwvwbWRITQUyF Jl9Dw3NFj2xAcevavY66Bbo8FDlMadYpD7LHwOUmPWx4tjV7BT2ENLuDXSwY0qvE9uwm 7vHHm3uG9f0VcTloY0JTAHPShkQO4U0hQvFv8ZBfRwnEy78SaPKtnAOIvco7DnrYnL7X l1jg==
In-reply-to: <20160919061120.GK2356@xxxxxxxxxxxxxxxxxx>
Organization: IBM
References: <CA+55aFzohsUXj_3BeFNr2t50Wm=G+7toRDEz=Tk7VJqP3n1hXQ@xxxxxxxxxxxxxx> <CA+55aFxrqCng2Qxasc9pyMrKUGFjo==fEaFT1vkH9Lncte3RgQ@xxxxxxxxxxxxxx> <20160909023452.GO2356@xxxxxxxxxxxxxxxxxx> <CA+55aFwHQMjO4-vtfB9-ytc=o+DRo-HXVGckvXLboUxgpwb7_g@xxxxxxxxxxxxxx> <20160909221945.GQ2356@xxxxxxxxxxxxxxxxxx> <CA+55aFzTOOB6oEVaaGD0N7Uznk-W9+ULPwzsxS_L_oZqGVSeLA@xxxxxxxxxxxxxx> <20160914031648.GB2356@xxxxxxxxxxxxxxxxxx> <20160914133925.2fba4629@xxxxxxxxxxxxxxxxxxx> <20160918053337.GA32207@xxxxxxxxxxxxxxxxxx> <20160919130830.14bde3b0@xxxxxxxxxxxxxxxxxxx> <20160919061120.GK2356@xxxxxxxxxxxxxxxxxx>
On Mon, 19 Sep 2016 07:11:21 +0100
Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:

> On Mon, Sep 19, 2016 at 01:08:30PM +1000, Nicholas Piggin wrote:
> 
> > Without looking through all the patches again, I believe the issue was
> > just that filesystems were not expecting (or at least, not audited to
> > expect) pages being added to their pagecache in that particular state
> > (they'd expect to go through ->readpage or see !uptodate in prepare_write).
> > 
> > If some wanted to attach metadata to uptodate pages for example, this
> > may have caused a problem. It wasn't some big fundamental problem, just a
> > mechanical one.  
> 
> Umm...  Why not make it non-uptodate/locked, try to replace the original
> with it in pagecache and then do full-page ->write_begin immediately
> followed by full-page ->write_end?  Looks like that ought to work in
> all in-tree cases...

That sounds like it probably should work for that case. IIRC, I was looking
at using a write_begin flag to notify the case of of replacing the page, so
the fs could also handle the case of replacing existing pagecache.

<Prev in Thread] Current Thread [Next in Thread>