I resolved a conflict between the new creds API and the nfs4 server code
in
git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6#next
per the patch below. Please check.
diff --cc fs/nfsd/nfs4recover.c
index 9371ea1,b79ec93..0000000
--- a/fs/nfsd/nfs4recover.c
+++ b/fs/nfsd/nfs4recover.c
@@@ -230,12 -224,10 +230,13 @@@ nfsd4_list_rec_dir(struct dentry *dir,
if (!rec_dir_init)
return 0;
- nfs4_save_user(&uid, &gid);
+ status = nfs4_save_creds(&original_cred);
+ if (status < 0)
+ return status;
+ INIT_LIST_HEAD(dentries);
- filp = dentry_open(dget(dir), mntget(rec_dir.mnt), O_RDONLY);
+ filp = dentry_open(dget(dir), mntget(rec_dir.mnt), O_RDONLY,
+ current_cred());
status = PTR_ERR(filp);
if (IS_ERR(filp))
goto out;
--
James Morris
<[email protected]>
Hi James,
On Thu, 4 Dec 2008 17:33:39 +1100 (EST) James Morris <[email protected]> wrote:
>
> I resolved a conflict between the new creds API and the nfs4 server code
> in
> git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6#next
>
> per the patch below. Please check.
>
>
> diff --cc fs/nfsd/nfs4recover.c
> index 9371ea1,b79ec93..0000000
> --- a/fs/nfsd/nfs4recover.c
> +++ b/fs/nfsd/nfs4recover.c
> @@@ -230,12 -224,10 +230,13 @@@ nfsd4_list_rec_dir(struct dentry *dir,
> if (!rec_dir_init)
> return 0;
>
> - nfs4_save_user(&uid, &gid);
> + status = nfs4_save_creds(&original_cred);
> + if (status < 0)
> + return status;
> + INIT_LIST_HEAD(dentries);
>
> - filp = dentry_open(dget(dir), mntget(rec_dir.mnt), O_RDONLY);
> + filp = dentry_open(dget(dir), mntget(rec_dir.mnt), O_RDONLY,
> + current_cred());
> status = PTR_ERR(filp);
> if (IS_ERR(filp))
> goto out;
That is exactly what I did in linux-next in Nov 25 and got no screams
then.
--
Cheers,
Stephen Rothwell [email protected]
http://www.canb.auug.org.au/~sfr/