netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rainer Weikusat <rweikusat@cyberadapt.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>,
	Rainer Weikusat <rweikusat@cyberadapt.com>,
	CAI Qian <caiqian@redhat.com>, Miklos Szeredi <miklos@szeredi.hu>,
	Hannes Frederic Sowa <hannes@stressinduktion.org>,
	Eric Sandeen <esandeen@redhat.com>,
	Network Development <netdev@vger.kernel.org>
Subject: Re: possible circular locking dependency detected
Date: Fri, 2 Sep 2016 18:40:59 +0100	[thread overview]
Message-ID: <8737lib3o4.fsf@doppelsaurus.mobileactivedefense.com> (raw)
In-Reply-To: <CA+55aFz-TaU=C47Rna4b_pibKPfabXWtt88gaqWkUdcN9ay9nQ@mail.gmail.com> (Linus Torvalds's message of "Fri, 2 Sep 2016 10:12:08 -0700")

Linus Torvalds <torvalds@linux-foundation.org> writes:
> On Fri, Sep 2, 2016 at 10:02 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
>>
>> It's very much _not_ just overlayfs being pathological - that it certainly is,
>> but the problem is much wider.
>
> Al, can you take a look at my two patches, and see if you agree that
> they fix it, though?

The original deadlock occurred because of some code path locking the
superblock followed by trying to acquire the af_unix readlock while
unix_bind did the same in the opposite order (by doing kern_path_create
with the readlock held). If unix_bind doesn't share a lock with the
receive routines anymore, this obviously can't happen anymore.

The other problem situation is one where a lock on someting can be
acquired both by kern_path_create and a mknod operation and the readlock
is taken in between. Because that sits in between the kern_path_create
and the mknod, it can block the thread which got a certain lock via
kern_path_create because the one which is about to try to acquire it via
mknod got the readlock first. This obviously can't happen anymore the when the
original 'acquire readlock (now bindlock) first' is restored.

  reply	other threads:[~2016-09-02 17:55 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CA+55aFy0cQq569m=0umnqZe6HJp8eQX2ed-yi=Fmntuhd2AM=Q@mail.gmail.com>
     [not found] ` <87h99zo4d8.fsf@doppelsaurus.mobileactivedefense.com>
     [not found]   ` <CA+55aFwcPK_wXS8SE5wPitCXUewZ1+OGqVrWxvvU8tVDuCeHWA@mail.gmail.com>
     [not found]     ` <CA+55aFxGW8_DpYa6rZAq0s7zzFCB58U=7Kgy1T+7cY2=TasGrw@mail.gmail.com>
     [not found]       ` <871t13o1n1.fsf@doppelsaurus.mobileactivedefense.com>
     [not found]         ` <CA+55aFzbCDwOTbHiawpY2xSaR_EBkTDbYeJV3CH09OLLtPW3nw@mail.gmail.com>
     [not found]           ` <6f7d587b-3933-7c02-a804-db1732ced1cf@stressinduktion.org>
     [not found]             ` <CA+55aFyNJg_brA4rGF0S2ve0V_2vuhZCFKEMFDNhHKEXoVCRGA@mail.gmail.com>
     [not found]               ` <20160901204746.GR2356@ZenIV.linux.org.uk>
     [not found]                 ` <CA+55aFxzRnLCev6i_ehw9LFf-dw3s0znF+nP_c86i=219OZhfg@mail.gmail.com>
     [not found]                   ` <20160901210142.GS2356@ZenIV.linux.org.uk>
     [not found]                     ` <CA+55aFzxJM4pbS_jySERnCoOvvPbo+FgM7FZEATLJnCseD0j0g@mail.gmail.com>
2016-09-01 22:04                       ` possible circular locking dependency detected Linus Torvalds
2016-09-02 14:43                         ` CAI Qian
2016-09-02 15:51                           ` CAI Qian
2016-09-02 16:46                             ` CAI Qian
2016-09-02 17:10                             ` Linus Torvalds
2016-09-02 15:18                         ` Rainer Weikusat
2016-09-02 16:00                           ` Al Viro
2016-09-02 16:10                             ` Rainer Weikusat
2016-09-02 17:02                               ` Al Viro
2016-09-02 17:12                                 ` Linus Torvalds
2016-09-02 17:40                                   ` Rainer Weikusat [this message]
2016-09-02 17:53                                     ` Al Viro
2016-09-02 17:52                                   ` Al Viro

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8737lib3o4.fsf@doppelsaurus.mobileactivedefense.com \
    --to=rweikusat@cyberadapt.com \
    --cc=caiqian@redhat.com \
    --cc=esandeen@redhat.com \
    --cc=hannes@stressinduktion.org \
    --cc=miklos@szeredi.hu \
    --cc=netdev@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).