Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp3479578imm; Tue, 29 May 2018 07:59:06 -0700 (PDT) X-Google-Smtp-Source: AB8JxZp5bJQcwcfBbYDltv8xt6b63WLBxRVA8LdDWhhhhag+3L3iZB/q3Wf0GWNwQaza6Mqnz9vj X-Received: by 2002:a62:828c:: with SMTP id w134-v6mr17629077pfd.138.1527605946358; Tue, 29 May 2018 07:59:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527605946; cv=none; d=google.com; s=arc-20160816; b=Kbb37kUXyxiE6Jec9gjTCrX8HouOkDFfvSerDnP+Iux5cw6GRHlv9+A5OmQhuAIIHk FDaE0j6grj7jYI9njZ/rF9tUJIMZKa359CyxT9HCwSr7/5DvoL12D3OnbpYFYVmpALGe RHhpsy41qpadHT5bg70ZjzyRClB/6PyqZiulSDlJ98v5ThtyIAZAjvGrJdvOn53boIIP LwvHpGoOupDMrYMsHTkmYaXV5w1Sikfz3pKzkMJBS+L13FIPnhg34620Dr2gbyqTyWFZ jfujPTGU0mUCORdpeON9DUzedqQ3lqWlkyUMBrfr95ZFwDgiXvnqCHkwhajWbUUjMQ8n iMjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=piun7pLqn9Ii1ipCp5eZlO7fYUHIsX4G+IG649VtG64=; b=larOGr6SwvVPKF6Ui2R6fO0BADHWgDK6V+5L2g64A3knJws2gOLiwSI72wnITjlYPr DeoB5x/p3CgC43nlz7ZBOVAf/0gf+ZU4rN2aja4bJ9AeWc7zEPjHFV6spqdlzuWrIkqR 67OKOcYCwaGqTp9GPXqLY1E5fzqysRpY7EaWTK80jnKYDh/q2/6ssQkW+m4re3Embu6b fmIAH3qL0Ec0XH/HgWOOmRW4sQW6bVl5JstdBsRy5dMw4gTI/3HM2RZdPFP1m+HqYuYY dXpB+y7ZfVY9bwdkPSicXTgBxBBFEVlAiaVDv7hA6xHAbRpzWf10kZNzAGUXmYnLrSat Q5iQ== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s86-v6si32859077pfd.288.2018.05.29.07.58.52; Tue, 29 May 2018 07:59:06 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936475AbeE2Ox2 (ORCPT + 99 others); Tue, 29 May 2018 10:53:28 -0400 Received: from mail-wr0-f193.google.com ([209.85.128.193]:34211 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S936610AbeE2Oqd (ORCPT ); Tue, 29 May 2018 10:46:33 -0400 Received: by mail-wr0-f193.google.com with SMTP id j1-v6so26002022wrm.1 for ; Tue, 29 May 2018 07:46:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=piun7pLqn9Ii1ipCp5eZlO7fYUHIsX4G+IG649VtG64=; b=VBNKyQ73DYw6uG61OPEjgK4fRfVn4nxurpujNkJRtBEpbs9rBVbo9TVTIMrtI1eTho PKsT6yxiCs3XJ0vpqCmHcKrqS402z3EVSRX2nJiDoy8yMVOSHs7oXpriauhbtxTBGyKA 4u1MIf/6c7U6A5CJ/UZhQasNeOcU6qe9q0VtXyWW9eS4/lP0Me9oTHlrK6wdeRqAWlRl 6/lGIyW5n5DRp0bAY9kACuUJ190jeJwk9rzO2A8kvbOofSBLOiIxLlGZ5WyRbjAe3WLA EDP/qo0B7ZdhQExmLamHOQocZY5QlS5fCtoECDcH1r7PsVu7TqV870IP5mZ/NzeBoA2v ZGGg== X-Gm-Message-State: ALKqPweJtNY75ZJlny4Tl1wjG9dk9EXlTlBoOF4ZNHMCrGs6zwk0jfgo Y+m9qt9c80+5AV4Y8ExznB/lbpCIEwU= X-Received: by 2002:adf:b2c9:: with SMTP id g67-v6mr11366791wrd.147.1527605192297; Tue, 29 May 2018 07:46:32 -0700 (PDT) Received: from veci.piliscsaba.redhat.com (catv-176-63-54-97.catv.broadband.hu. [176.63.54.97]) by smtp.gmail.com with ESMTPSA id n71-v6sm20942227wmi.14.2018.05.29.07.46.31 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 29 May 2018 07:46:31 -0700 (PDT) From: Miklos Szeredi To: linux-unionfs@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 14/28] ovl: Add helper ovl_inode_realdata() Date: Tue, 29 May 2018 16:45:58 +0200 Message-Id: <20180529144612.16675-15-mszeredi@redhat.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180529144612.16675-1-mszeredi@redhat.com> References: <20180529144612.16675-1-mszeredi@redhat.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Vivek Goyal Add an helper to retrieve real data inode associated with overlay inode. This helper will ignore all metacopy inodes and will return only the real inode which has data. Signed-off-by: Vivek Goyal Reviewed-by: Amir Goldstein Signed-off-by: Miklos Szeredi --- fs/overlayfs/overlayfs.h | 1 + fs/overlayfs/util.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/fs/overlayfs/overlayfs.h b/fs/overlayfs/overlayfs.h index 558a1b444286..dcd600201ec8 100644 --- a/fs/overlayfs/overlayfs.h +++ b/fs/overlayfs/overlayfs.h @@ -229,6 +229,7 @@ struct inode *ovl_inode_upper(struct inode *inode); struct inode *ovl_inode_lower(struct inode *inode); struct inode *ovl_inode_lowerdata(struct inode *inode); struct inode *ovl_inode_real(struct inode *inode); +struct inode *ovl_inode_realdata(struct inode *inode); struct ovl_dir_cache *ovl_dir_cache(struct inode *inode); void ovl_set_dir_cache(struct inode *inode, struct ovl_dir_cache *cache); void ovl_dentry_set_flag(unsigned long flag, struct dentry *dentry); diff --git a/fs/overlayfs/util.c b/fs/overlayfs/util.c index 63311c536216..73939e08d8bf 100644 --- a/fs/overlayfs/util.c +++ b/fs/overlayfs/util.c @@ -256,6 +256,18 @@ struct inode *ovl_inode_lowerdata(struct inode *inode) return OVL_I(inode)->lowerdata ?: ovl_inode_lower(inode); } +/* Return real inode which contains data. Does not return metacopy inode */ +struct inode *ovl_inode_realdata(struct inode *inode) +{ + struct inode *upperinode; + + upperinode = ovl_inode_upper(inode); + if (upperinode && ovl_has_upperdata(inode)) + return upperinode; + + return ovl_inode_lowerdata(inode); +} + struct ovl_dir_cache *ovl_dir_cache(struct inode *inode) { return OVL_I(inode)->cache; -- 2.14.3