]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
linux-kernel-module: move keyring-specific
authorChristof Hanke <christof.hanke@rzg.mpg.de>
Tue, 8 Oct 2013 09:53:17 +0000 (11:53 +0200)
committerStephan Wiesand <stephan.wiesand@desy.de>
Wed, 9 Oct 2013 14:18:10 +0000 (07:18 -0700)
function afs_set_session_keyring into
if defined(LINUX_KEYRING_SUPPORT)
block. Otherwise compilation fails.

Reviewed-on: http://gerrit.openafs.org/10324
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
(cherry picked from commit b0d75d0687a3436201411384c570448a49a9db15)

Reviewed-on: http://gerrit.openafs.org/10325
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Christof Hanke <christof.hanke@rzg.mpg.de>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
(cherry picked from commit 994da1669293c7c341b5f73fdb7eaebbe530ec90)

Change-Id: I266cb65d60c814bdb333f8193f95b5b61955b544
Reviewed-on: http://gerrit.openafs.org/10331
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
src/afs/LINUX/osi_compat.h

index 90bcd9a3a89495cb7296db2b6f7a98b879223843..f11b3dbf402ac02dc924945a3bd8df1632cd1794 100644 (file)
@@ -220,6 +220,26 @@ afs_linux_search_keyring(afs_ucred_t *cred, struct key_type *type)
     return request_key(type, "_pag", NULL);
 }
 # endif /* STRUCT_TASK_STRUCT_HAS_CRED */
+
+static_inline struct key *
+afs_set_session_keyring(struct key *keyring)
+{
+    struct key *old;
+#if defined(STRUCT_CRED_HAS_SESSION_KEYRING)
+    struct cred *new_creds;
+    old = current_session_keyring();
+    new_creds = prepare_creds();
+    rcu_assign_pointer(new_creds->session_keyring, keyring);
+    commit_creds(new_creds);
+#else
+    spin_lock_irq(&current->sighand->siglock);
+    old = task_session_keyring(current);
+    smp_wmb();
+    task_session_keyring(current) = keyring;
+    spin_unlock_irq(&current->sighand->siglock);
+#endif
+    return old;
+}
 #endif /* LINUX_KEYRING_SUPPORT */
 
 #ifdef STRUCT_TASK_STRUCT_HAS_CRED
@@ -518,26 +538,6 @@ afs_set_name(afs_name_t aname, char *string) {
 }
 #endif
 
-static_inline struct key *
-afs_set_session_keyring(struct key *keyring)
-{
-    struct key *old;
-#if defined(STRUCT_CRED_HAS_SESSION_KEYRING)
-    struct cred *new_creds;
-    old = current_session_keyring();
-    new_creds = prepare_creds();
-    rcu_assign_pointer(new_creds->session_keyring, keyring);
-    commit_creds(new_creds);
-#else
-    spin_lock_irq(&current->sighand->siglock);
-    old = task_session_keyring(current);
-    smp_wmb();
-    task_session_keyring(current) = keyring;
-    spin_unlock_irq(&current->sighand->siglock);
-#endif
-    return old;
-}
-
 static inline int
 afs_truncate(struct inode *inode, int len)
 {