Re: [PATCH v4 1/2] hugetlb: use f_mode & FMODE_HUGETLBFS to identify hugetlbfs files
From: Al Viro
Date: Thu Jun 11 2020 - 21:58:54 EST
On Thu, Jun 11, 2020 at 05:46:43PM -0700, Mike Kravetz wrote:
> The routine is_file_hugepages() checks f_op == hugetlbfs_file_operations
> to determine if the file resides in hugetlbfs. This is problematic when
> the file is on a union or overlay. Instead, define a new file mode
> FMODE_HUGETLBFS which is set when a hugetlbfs file is opened. The mode
> can easily be copied to other 'files' derived from the original hugetlbfs
> file.
>
> With this change hugetlbfs_file_operations can be static as it should be.
>
> There is also a (duplicate) set of shm file operations used for the routine
> is_file_shm_hugepages(). Instead of setting/using special f_op's, just
> propagate the FMODE_HUGETLBFS mode. This means is_file_shm_hugepages() and
> the duplicate f_ops can be removed.
s/HUGETLBFS/HUGEPAGES/, please.
> While cleaning things up, change the name of is_file_hugepages() to
> is_file_hugetlbfs(). The term hugepages is a bit ambiguous.
Don't, especially since the very next patch adds such on overlayfs...
Incidentally, can a hugetlbfs be a lower layer, while the upper one
is a normal filesystem? What should happen on copyup?