]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Linux: Use current_creds() if stashed creds fail
authorSimon Wilkinson <sxw@inf.ed.ac.uk>
Tue, 9 Feb 2010 19:53:40 +0000 (19:53 +0000)
committerDerrick Brashear <shadow@dementia.org>
Thu, 11 Feb 2010 03:35:58 +0000 (19:35 -0800)
If we can't use our stashed credentials (because SELinux hates us,
most likely), then fall back to trying the processes current credentials
instead of just oopsing.

Change-Id: Ib3676ff66f8400e86cccb97fb207a5f094ceb4ad
Reviewed-on: http://gerrit.openafs.org/1283
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
(cherry picked from commit bcdb5220e2db2bf0cd22c6316682046425048d87)
Reviewed-on: http://gerrit.openafs.org/1289

src/afs/LINUX/osi_file.c

index e7c3661ccb9a6fe3e7663c59714b8d55d27241b8..1f9e8cf880adfbf4831c4ef47d2e8efc02895f09 100644 (file)
@@ -82,6 +82,8 @@ osi_UFSOpen(afs_int32 ainode)
 #if defined(STRUCT_TASK_HAS_CRED)
     /* Use stashed credentials - prevent selinux/apparmor problems  */
     filp = dentry_open(dp, mntget(afs_cacheMnt), O_RDWR, cache_creds);
+    if (IS_ERR(filp))
+       filp = dentry_open(dp, mntget(afs_cacheMnt), O_RDWR, current_cred());
 #else
     filp = dentry_open(dp, mntget(afs_cacheMnt), O_RDWR);
 #endif