Received: by 2002:ac0:aed5:0:0:0:0:0 with SMTP id t21csp688274imb; Fri, 1 Mar 2019 11:13:45 -0800 (PST) X-Google-Smtp-Source: APXvYqz0cMnDDyGDadDBZxr/RGQ4bgLSIf1Hf3HR8hC27vlTPxEPwBW6VryD56B6UuPLxbOfktfI X-Received: by 2002:a17:902:323:: with SMTP id 32mr7111672pld.310.1551467625714; Fri, 01 Mar 2019 11:13:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551467625; cv=none; d=google.com; s=arc-20160816; b=z39cXwiszUjQy7DojEIRcp/5J82szoTzGXxVwJOG0yzmX4S6RcYCDYkC5lIMMTgeSo Lnrhj2jyI+yLRsSIFZkD5/rPsy6jpHEGqsGnbSQ3lhRZgV8lNPApwzuUstUPoNNI/bw5 9wLnv2xCWFrzmspT4P8ulqNJZUKT4BwvzxW7m44SIeFSPvvCzcwfazSdiSgqBhWJakI3 YfNegpvFoIppzKdBsx0/WOZnQ1nfbsixgE7NzBOuO9rMTAqXx17kvjBH9qTEH42zNEPg uguGOlIaTuS6qoo4lCNBl6x9pI/E9XV6XRcXCn0g+8Ll1ph4WvCVHLWmH4Ay4Qg4NzNf mnww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=4a/XQQUIE/TCmZFC7ofp3h7FirUAaOvXD93oZfDtDpQ=; b=gZyBAa/fiXlWgP1TtkHjafcPP8YvmOULLhqIOPil/s6YzZefJn0BVWC5dq6PU548N5 zxqNweVFqjrFe9koJHPT0qFlvRSqmVFnVe1FWWJauuGDgrxG0fbbR4EZRXltzoNve7i1 0AJC9R0o01OweJhO4OpzxwIyLRVbsgBjsnKKO0q0nmgEbC5K4ppi7ydTVEFr99mAQK6i Qqmre+k1rTEbcDiCJbHwwD5LqNyoLkUGHgr+KRf0jOIGHSqD+6TBbcrDA+z0e0GsxEW3 kz7nacqkGxvRiq1oyewDh2442PNswoVds2vSMC177Mp4M0SnYClfhQdZkIo7FaBRAqQ0 u3qQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 39si21595479ple.354.2019.03.01.11.13.30; Fri, 01 Mar 2019 11:13:45 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389733AbfCAR6A (ORCPT + 99 others); Fri, 1 Mar 2019 12:58:00 -0500 Received: from mx2.suse.de ([195.135.220.15]:43316 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727952AbfCAR57 (ORCPT ); Fri, 1 Mar 2019 12:57:59 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id E8BB9AF79; Fri, 1 Mar 2019 17:57:57 +0000 (UTC) From: Luis Henriques To: "Yan, Zheng" , Sage Weil , Ilya Dryomov Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, Luis Henriques Subject: [RFC PATCH 1/2] ceph: factor out ceph_lookup_inode() Date: Fri, 1 Mar 2019 17:57:51 +0000 Message-Id: <20190301175752.17808-2-lhenriques@suse.com> In-Reply-To: <20190301175752.17808-1-lhenriques@suse.com> References: <20190301175752.17808-1-lhenriques@suse.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This function will be used by __fh_to_dentry and by the quotas code, to find quota realm inodes that are not visible in the mountpoint. The only functional change is that an error is also returned if ceph_mdsc_do_request() fails. Signed-off-by: Luis Henriques --- fs/ceph/export.c | 14 +++++++++++++- fs/ceph/super.h | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/fs/ceph/export.c b/fs/ceph/export.c index 3c59ad180ef0..0d8ead82c816 100644 --- a/fs/ceph/export.c +++ b/fs/ceph/export.c @@ -59,7 +59,7 @@ static int ceph_encode_fh(struct inode *inode, u32 *rawfh, int *max_len, return type; } -static struct dentry *__fh_to_dentry(struct super_block *sb, u64 ino) +struct inode *ceph_lookup_inode(struct super_block *sb, u64 ino) { struct ceph_mds_client *mdsc = ceph_sb_to_client(sb)->mdsc; struct inode *inode; @@ -92,12 +92,24 @@ static struct dentry *__fh_to_dentry(struct super_block *sb, u64 ino) ceph_mdsc_put_request(req); if (!inode) return ERR_PTR(-ESTALE); + if (err) + return ERR_PTR(err); if (inode->i_nlink == 0) { iput(inode); return ERR_PTR(-ESTALE); } } + return inode; +} + +static struct dentry *__fh_to_dentry(struct super_block *sb, u64 ino) +{ + struct inode *inode = ceph_lookup_inode(sb, ino); + + if (IS_ERR(inode)) + return ERR_CAST(inode); + return d_obtain_alias(inode); } diff --git a/fs/ceph/super.h b/fs/ceph/super.h index dfb64a5211b6..ce51e98b08ec 100644 --- a/fs/ceph/super.h +++ b/fs/ceph/super.h @@ -1061,6 +1061,7 @@ extern long ceph_ioctl(struct file *file, unsigned int cmd, unsigned long arg); /* export.c */ extern const struct export_operations ceph_export_ops; +struct inode *ceph_lookup_inode(struct super_block *sb, u64 ino); /* locks.c */ extern __init void ceph_flock_init(void);