Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp1712729imm; Thu, 9 Aug 2018 00:17:08 -0700 (PDT) X-Google-Smtp-Source: AA+uWPzB02vl2H9Mm+UjAYrNJcWz4wOwaM8hm4QGFRJ7SUSC8TGSfzEoxPoW4AxqcgmxBhl17ND3 X-Received: by 2002:aa7:82c3:: with SMTP id f3-v6mr1113437pfn.136.1533799027920; Thu, 09 Aug 2018 00:17:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533799027; cv=none; d=google.com; s=arc-20160816; b=Y/3F9SIVJ0iXdCWQJq9KVOPY0AmSQ24JqAleRF3THjMuGI1Urbcmd5QF6gVgti6SuH bIykZ3jrkWRqxxkIT4nTDWFoY7tBslgBqQMAW+fFbhqROxTpj0MUd2UOtYt38sdnO59U l3id7wsKKGPxo+91KPlu/hh6GuoNEH9XI7P1TSyOrgKjxYuwS0rZqvprtYrs3U4PIm+0 96iAlnwlquDM0uHfuYdq7dSoZNt5el2KLWPHblZSVlBAxG3mI1FjRWgz5jyvc4X+pbwk HIWXd2QTcLdFbv8kuINyKxZNDt0DHzkd5oYM4OjFcte4kL+M5nCT9rgq35Zx7FISiF11 EbUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=+psD0vvXvEYpboGU5d/bYxEwYMPTfqAERH7O6PL0kCY=; b=ytqbjb9bklHyE7pysn8FUDlNEeT/Ot3hietMycGrIYpvRxIeqP56MXQpMDZcRUBFSM GMahMi05bunuL1pYoq22/ID3NPj72uxPC/BE+9Y6g4wxIBKXIVkaB4pgKQW5pbA4xJ0p iirux1OoQLMPEiU5f5/YjELL1ij5gHVj40Y1Ffuq376gSFbO5KXwEHuZd5xlUrgvG+M+ WDq39Jyiip1K78Pb4cGJgIzPRzALukNR+UzEhzWWHWb3Me/lrzTfAivu0mqsCBkSZfOJ x/G+t5LEM8I5wv6QQgxhEq1n9pDsJA82vjPTSmRKHZPThERI7NelNa4WXwK2L8A9ZpQG 1E8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=tfRMNQ9X; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w4-v6si7231351pfb.52.2018.08.09.00.16.53; Thu, 09 Aug 2018 00:17:07 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=tfRMNQ9X; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728469AbeHIJjf (ORCPT + 99 others); Thu, 9 Aug 2018 05:39:35 -0400 Received: from mail-qk0-f193.google.com ([209.85.220.193]:46738 "EHLO mail-qk0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727559AbeHIJjf (ORCPT ); Thu, 9 Aug 2018 05:39:35 -0400 Received: by mail-qk0-f193.google.com with SMTP id 191-v6so3356278qki.13; Thu, 09 Aug 2018 00:16:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=+psD0vvXvEYpboGU5d/bYxEwYMPTfqAERH7O6PL0kCY=; b=tfRMNQ9Xv+HlWvCG1XOdPy7JZoZ/j/7hK+dbwMiQMnI2xb+aV9vUl/jni9dEJoOyGX +ozw/nw733qTps51AR2HNaMEOEemMsQd4BRfVxCYpbvYjmMudrK1BI9Qn8rP9+OnuYzR kgv3Ebc6wZW6MhoVmbH3QJEa+4N8PknhubQntkEjlwMf+d9u3QMqtnjA7EvxsFGDUnNq 6FowS6JCsVp938rPfE2PsZ9F86m3NlrGf3BfzHezmqmF/nM8fwi499ENWPHlt/YE4VBc 3bhb+i4yKjytS+QYkufjdYksCiXmo5yR83gT3+nQxOowl0CB7NJCD/nf1EkRTBucocIG UX2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=+psD0vvXvEYpboGU5d/bYxEwYMPTfqAERH7O6PL0kCY=; b=nYWB6j+n6IKhizZ+g81qDaesYkhE4ypoG2sgpmZySlaZUM1ymKlWaTkoU9hNGjYzfC ScJzUjZbIkJrPQbbZ2ylI1wqTNyMpJ9VR5PAXGO+rIhHECPkVLKNjvBIV8niYLY0CNCp GuBnZlmPEdG01b90kmxm1OVWG2nKIxPNAG++18GyjbXoNLexOiwoxVuJU5+r9P9KaL5p /uBROnMeX7BhSogcJhi9wED2UAH8gjM2LakzwN2mbKYvcd6hd/UzoiUuepy3CKiKchx6 JrBZ9ebg2F5nnfzESkcDYStd6Df59qmIzFAxJ9ZIy6w5wngJwW6xZqUnCJ0wiiq4c8+X NLvA== X-Gm-Message-State: AOUpUlG4jRGhqGx05+oRjbeKw4UNO0N59mwKKZPbu9r3QinMeb0LCmE7 LQZG/4vFXPVdOH2M4VP9568UMprJ5Mwj9pHSJQw= X-Received: by 2002:a37:4150:: with SMTP id o77-v6mr770523qka.78.1533798965545; Thu, 09 Aug 2018 00:16:05 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a0c:f192:0:0:0:0:0 with HTTP; Thu, 9 Aug 2018 00:16:05 -0700 (PDT) In-Reply-To: <20180608142712.32460-1-khorenko@virtuozzo.com> References: <20180608142712.32460-1-khorenko@virtuozzo.com> From: Murphy Zhou Date: Thu, 9 Aug 2018 15:16:05 +0800 Message-ID: Subject: Re: [PATCH 0/2] fs/lock: show locks info owned by dead/invisible processes To: Konstantin Khorenko Cc: Kirill Gorkunov , Andrey Vagin , Benjamin Coddington , Jeff Layton , "J. Bruce Fields" , Alexander Viro , Vasily Averin , Linux-Fsdevel , linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Looks like this missed v4.18 ? Thanks, Murphy On Fri, Jun 8, 2018 at 10:27 PM, Konstantin Khorenko wrote: > The behavior has been changed after 9d5b86ac13c5 ("fs/locks: Remove fl_nspid > and use fs-specific l_pid for remote locks") > and now /proc/$PID/fdinfo/$FD does not show the info about the lock > * if the flock owner process is dead and its pid has been already freed > or > * if the lock owner is not visible in current pidns. > > CRIU uses this interface to store locks info during dump and thus can break > on v4.13 and newer. > > So let's show info about locks anyway in described cases (like it was before > 9d5b86ac13c5), but show pid number saved in file_lock struct if we are in > init_pid_ns (patch 1) or just zero otherwise (patch 2) like we do with SID. > > Reproducer: > process A process A1 process A2 > fork()---------> > exit() open() > flock() > fork()---------> > exit() sleep() > > Before the patch: > ================ > (root@vz7)/: cat /proc/${PID_A2}/fdinfo/3 > pos: 4 > flags: 02100002 > mnt_id: 257 > lock: (root@vz7)/: > > After the patch: > =============== > (root@vz7)/:cat /proc/${PID_A2}/fdinfo/3 > pos: 4 > flags: 02100002 > mnt_id: 295 > lock: 1: FLOCK ADVISORY WRITE ${PID_A1} b6:f8a61:529946 0 EOF > > =============== > # cat flock1.c > > #include > #include > #include > #include > #include > #include > #include > > int main(void) > { > int fd; > int err; > pid_t child_pid; > > child_pid = fork(); > if (child_pid == -1) > perror("fork failed"); > if (child_pid) { > exit(0); > } > > fd = open("/tmp/a", O_CREAT | O_RDWR); > if (fd == -1) > perror("Failed to open the file"); > > err = flock(fd, LOCK_EX); > if (err == -1) > perror("flock failed"); > > child_pid = fork(); > if (child_pid == -1) > perror("fork failed"); > if (child_pid) > exit(0); > > sleep(10000); > > return 0; > } > > Konstantin Khorenko (2): > fs/lock: skip lock owner pid translation in case we are in init_pid_ns > fs/lock: show locks taken by processes from another pidns > > fs/locks.c | 15 ++++++++++----- > 1 file changed, 10 insertions(+), 5 deletions(-) > > -- > 2.15.1 >