From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Howells Subject: Re: [rfc][patch 3/5] afs: new aops Date: Wed, 14 Nov 2007 12:18:43 +0000 Message-ID: <30440.1195042723@redhat.com> References: <20071114042420.GF557@wotan.suse.de> <20071113004459.GE30650@wotan.suse.de> <20071113001548.GA30650@wotan.suse.de> <20071112071448.GE22953@wotan.suse.de> <20071112071245.GB22953@wotan.suse.de> <6161.1194881354@redhat.com> <17445.1194913805@redhat.com> <18637.1194951385@redhat.com> Cc: dhowells@redhat.com, Andrew Morton , linux-fsdevel@vger.kernel.org, mhalcrow@us.ibm.com, phillip@hellewell.homeip.net, sfrench@samba.org To: Nick Piggin Return-path: Received: from mx1.redhat.com ([66.187.233.31]:60881 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756846AbXKNM0D (ORCPT ); Wed, 14 Nov 2007 07:26:03 -0500 In-Reply-To: <20071114042420.GF557@wotan.suse.de> Sender: linux-fsdevel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org Nick Piggin wrote: > > The problem is that the code called assumes that the struct page * > > argument points to a single page, not an array of pages as would > > presumably be the case if PAGE_CACHE_SIZE > PAGE_SIZE. > > Incorrect. Christoph's patch for example does this by using compound pages. > Now I personally don't like the patch or see the point in PAGE_CACHE_SIZE / > PAGE_SIZE distinction, but I'm just telling you what the convention is. There > is no point you arguing against it, that's simply how it is. No! You are wrong. I wrote the AFS code. I *know* it can only deal with single pages. It has no knowledge of compound pages and does not handle page arrays. This may be a flaw in my code, but it's there nonetheless. The assertion is a guard against that. *That* was the point of my statement. Perhaps I should've said 'my code' rather than 'the code'. If Christoph has a patch to deal with that, it's either not upstream yet or it hasn't altered AFS. > > So: you may not change the assertion unless you also fix the lower > > functions. > > I won't change the assertion, because you haven't been following said > convention, so just changing it in one place is stupider than not changing > it at all, but not for the reason cited. The convention is not precisely clear. Just grep for PAGE_CACHE_SIZE in Documentation/. It's only mentioned twice, and in neither case does it give any information about what PAGE_CACHE_SIZE is, what it represents, or where it applies. Therefore it's an ill-defined concept. If you look in Documentation/filesystems/vfs.txt, you'll see that it almost always talks about 'pages'. It only mentions 'pagecache pages' once - in the description of write_begin(), but it's not clear whether that means anything. However, I've now noted that I need to fix my code, so just keep the assertion for now and I'll fix my code to handle multipage blocks. David