[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <m1hcswbqru.fsf@ebiederm.dsl.xmission.com>
Date: Wed, 07 Mar 2007 16:03:17 -0700
From: ebiederm@...ssion.com (Eric W. Biederman)
To: Bill Irwin <bill.irwin@...cle.com>
Cc: Adam Litke <agl@...ibm.com>, torvalds@...ux-foundation.org,
linux-kernel@...r.kernel.org, akpm@...ux-foundation.org
Subject: Re: [PATCH] Fix get_unmapped_area and fsync for hugetlb shm segments
Bill Irwin <bill.irwin@...cle.com> writes:
> On Thu, Mar 01, 2007 at 03:46:08PM -0800, Adam Litke wrote:
>> static inline int is_file_hugepages(struct file *file)
>> {
>> - return file->f_op == &hugetlbfs_file_operations;
>> + if (file->f_op == &hugetlbfs_file_operations)
>> + return 1;
>> + if (is_file_shm_hugepages(file))
>> + return 1;
>> +
>> + return 0;
>> }
> ...
>> +int is_file_shm_hugepages(struct file *file)
>> +{
>> + int ret = 0;
>> +
>> + if (file->f_op == &shm_file_operations) {
>> + struct shm_file_data *sfd;
>> + sfd = shm_file_data(file);
>> + ret = is_file_hugepages(sfd->file);
>> + }
>> + return ret;
>
> A comment to prepare others for the impending doubletake might be nice.
> Or maybe just open-coding the equality check for &huetlbfs_file_operations
> in is_file_shm_hugepages() if others find it as jarring as I. Please
> extend my ack to any follow-up fiddling with that.
You did notice we are testing a different struct file?
> The patch addresses relatively straightforward issues and naturally at
> that.
The whole concept is recursive so I'm not certain being a recursive check
is that bad but I understand the point.
I think the right answer is most likely to add an extra file method or
two so we can remove the need for is_file_hugepages.
There are still 4 calls to is_file_hugepages in ipc/shm.c and
2 calls in mm/mmap.c not counting the one in is_file_shm_hugepages.
The special cases make it difficult to properly wrap hugetlbfs files
with another file, which is why we have the weird special case above.
Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists