From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4AF23C433EF for ; Wed, 13 Apr 2022 06:47:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C277A6B0074; Wed, 13 Apr 2022 02:47:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BD8256B0075; Wed, 13 Apr 2022 02:47:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A9EC56B0078; Wed, 13 Apr 2022 02:47:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0186.hostedemail.com [216.40.44.186]) by kanga.kvack.org (Postfix) with ESMTP id 990A56B0074 for ; Wed, 13 Apr 2022 02:47:31 -0400 (EDT) Received: from smtpin22.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 44146A7C37 for ; Wed, 13 Apr 2022 06:47:31 +0000 (UTC) X-FDA: 79350924702.22.38BEF9B Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by imf17.hostedemail.com (Postfix) with ESMTP id 2CF6D40003 for ; Wed, 13 Apr 2022 06:47:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1649832450; x=1681368450; h=date:from:to:cc:subject:message-id:reply-to:references: mime-version:in-reply-to; bh=XhEjKmrtLUPMf9LLvjO1S6Dih4fMyLMUlExLoCSKsT8=; b=mbaZOR+rjTFB/i45sNxKHHh5DEcUSSx0Jhgfi50TmZsJyFSkfSxNJOk5 ApSXRvP5MfCPEqxT9J12ra7MvJj6HGfu/NOVNEpEmcClO4kCbeacQcauq BWH0eCWYP/7RfRQnOd/1yfxW7oGJpb1MTbuXpURIgUgkZXwgxajLF+qrs +PR9E9Kk1I6WlUii8/9OPPL9GLfZSx6+ZeGRe7n4EDiTiq8XkCbX7H5Rl CN2UQmUonXRXzJSS+zf59cAJZZEkLtQ5nYtX2JMIhe7I8N4r2E0N0pUuU VmVMs3OCgstm+dmzsqT7cpLD9cAZEf1+DuhqUJC+I4uOQIK83HOgJ5Uwa w==; X-IronPort-AV: E=McAfee;i="6400,9594,10315"; a="260187291" X-IronPort-AV: E=Sophos;i="5.90,256,1643702400"; d="scan'208";a="260187291" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Apr 2022 23:47:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,256,1643702400"; d="scan'208";a="700133137" Received: from chaop.bj.intel.com (HELO localhost) ([10.240.192.101]) by fmsmga001.fm.intel.com with ESMTP; 12 Apr 2022 23:47:27 -0700 Date: Wed, 13 Apr 2022 14:47:17 +0800 From: Chao Peng To: Hillf Danton Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, "Kirill A . Shutemov" Subject: Re: [PATCH v5 02/13] mm: Introduce memfile_notifier Message-ID: <20220413064717.GB10041@chaop.bj.intel.com> Reply-To: Chao Peng References: <20220310140911.50924-3-chao.p.peng@linux.intel.com> <20220412143654.6313-1-hdanton@sina.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220412143654.6313-1-hdanton@sina.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-Stat-Signature: 6bggcgibuf1bp3ogj7h8mshs4srahcx9 Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=mbaZOR+r; spf=none (imf17.hostedemail.com: domain of chao.p.peng@linux.intel.com has no SPF policy when checking 192.55.52.93) smtp.mailfrom=chao.p.peng@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com X-Rspam-User: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 2CF6D40003 X-HE-Tag: 1649832449-428360 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, Apr 12, 2022 at 10:36:54PM +0800, Hillf Danton wrote: > On Thu, 10 Mar 2022 22:09:00 +0800 Chao Peng wrote: > > + > > +void memfile_register_backing_store(struct memfile_backing_store *bs) > > +{ > > + BUG_ON(!bs || !bs->get_notifier_list); > > + > > + list_add_tail(&bs->list, &backing_store_list); > > +} > > + > > +void memfile_unregister_backing_store(struct memfile_backing_store *bs) > > +{ > > + list_del(&bs->list); > > +} > > + > > +static int memfile_get_notifier_info(struct inode *inode, > > Nit, s/get/lookup/ Thanks. > > > + struct memfile_notifier_list **list, > > + struct memfile_pfn_ops **ops) > > +{ > > + struct memfile_backing_store *bs, *iter; > > + struct memfile_notifier_list *tmp; > > + > > + list_for_each_entry_safe(bs, iter, &backing_store_list, list) { > > Wonder what serializes list walk with list del and add above. Yes, this needs locking if we want to support backing stores as modules, as Sean pointed out, at this time this is not quite meaningful so I will remove unregister also the register should be done at kernel init time so the walk here is actually on a readonly list. Thanks, Chao > > > + tmp = bs->get_notifier_list(inode); > > + if (tmp) { > > + *list = tmp; > > + if (ops) > > + *ops = &bs->pfn_ops; > > + return 0; > > + } > > + } > > + return -EOPNOTSUPP; > > +}