[OpenAFS-devel] having trouble compiling openafs kernel module
in kernel 4.5
Michael Laß
lass@mail.upb.de
Wed, 06 Apr 2016 19:59:01 +0200
Hi,
Am Mittwoch, den 06.04.2016, 13:24 -0400 schrieb Gary Gatling:
> Here is my build log:
>
> http://fpaste.org/350505/99628291/
>
> This is in fedora 24 alpha version which will be released in June.
>
> It seems to have problems with symlinks somehow.
>
> Any one have any ideas about how it could be patched? The kernel
> version is 4.5.0-302.fc24.x86_64.
I think the corresponding changes in the kernel
are fceef393a538134f03b778c5d2519e670269342f
and 6b2553918d8b4e6de9853fd6315bec7271a2e592.
Probably most helpful are the additional notes
in Documentation/filesystems/porting:
> git diff v4.4..v4.5 -- Documentation/filesystems/porting
> diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting
> index f24d1b8..f1b87d8 100644
> --- a/Documentation/filesystems/porting
> +++ b/Documentation/filesystems/porting
> @@ -504,3 +504,24 @@ in your dentry operations instead.
> [mandatory]
> __fd_install() & fd_install() can now sleep. Callers should not
> hold a spinlock or other resources that do not allow a schedule.
> +--
> +[mandatory]
> + any symlink that might use page_follow_link_light/page_put_link() must
> + have inode_nohighmem(inode) called before anything might start playing with
> + its pagecache. No highmem pages should end up in the pagecache of such
> + symlinks. That includes any preseeding that might be done during symlink
> + creation. __page_symlink() will honour the mapping gfp flags, so once
> + you've done inode_nohighmem() it's safe to use, but if you allocate and
> + insert the page manually, make sure to use the right gfp flags.
> +--
> +[mandatory]
> + ->follow_link() is replaced with ->get_link(); same API, except that
> + * ->get_link() gets inode as a separate argument
> + * ->get_link() may be called in RCU mode - in that case NULL
> + dentry is passed
> +--
> +[mandatory]
> + ->get_link() gets struct delayed_call *done now, and should do
> + set_delayed_call() where it used to set *cookie.
> + ->put_link() is gone - just give the destructor to set_delayed_call()
> + in ->get_link().
I only looked into this very briefly and I'm not working on
corresponding patches.
Cheers,
Michael