Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 274353
Collapse All | Expand All

(-)../pre11/openafs-1.4.11pre1/src/afs/afs_osi.c (+2 lines)
Lines 1110-1115 Link Here
1110
    return rv;
1110
    return rv;
1111
}
1111
}
1112
#elif defined(AFS_LINUX22_ENV)
1112
#elif defined(AFS_LINUX22_ENV)
1113
#if defined(EXPORTED_RCU_READ_LOCK) && !defined(LINUX_KEYRING_SUPPORT)
1113
const struct AFS_UCRED *
1114
const struct AFS_UCRED *
1114
afs_osi_proc2cred(AFS_PROC * pr)
1115
afs_osi_proc2cred(AFS_PROC * pr)
1115
{
1116
{
Lines 1142-1147 Link Here
1142
1143
1143
    return rv;
1144
    return rv;
1144
}
1145
}
1146
#endif
1145
#else
1147
#else
1146
const struct AFS_UCRED *
1148
const struct AFS_UCRED *
1147
afs_osi_proc2cred(AFS_PROC * pr)
1149
afs_osi_proc2cred(AFS_PROC * pr)
(-)../pre11/openafs-1.4.11pre1/src/afs/afs_user.c (-1 / +1 lines)
Lines 552-558 Link Here
552
}				/*afs_SetPrimary */
552
}				/*afs_SetPrimary */
553
553
554
554
555
#if AFS_GCPAGS
555
#if defined(AFS_GCPAGS) && defined(EXPORTED_RCU_READ_LOCK) && !defined(LINUX_KEYRING_SUPPORT)
556
556
557
/*
557
/*
558
 * Called by osi_TraverseProcTable (from afs_GCPAGs) for each 
558
 * Called by osi_TraverseProcTable (from afs_GCPAGs) for each 
(-)../pre11/openafs-1.4.11pre1/src/afs/LINUX/osi_groups.c (-10 / +10 lines)
Lines 228-234 Link Here
228
static struct key_type *__key_type_keyring = &key_type_keyring;
228
static struct key_type *__key_type_keyring = &key_type_keyring;
229
229
230
static int
230
static int
231
install_session_keyring(struct task_struct *task, struct key *keyring)
231
install_session_keyring(struct key *keyring)
232
{
232
{
233
    struct key *old;
233
    struct key *old;
234
    char desc[20];
234
    char desc[20];
Lines 242-262 Link Here
242
242
243
	/* create an empty session keyring */
243
	/* create an empty session keyring */
244
	not_in_quota = KEY_ALLOC_IN_QUOTA;
244
	not_in_quota = KEY_ALLOC_IN_QUOTA;
245
	sprintf(desc, "_ses.%u", task->tgid);
245
	sprintf(desc, "_ses.%u", current->tgid);
246
246
247
#if defined(KEY_ALLOC_NEEDS_STRUCT_TASK)
247
#if defined(KEY_ALLOC_NEEDS_STRUCT_TASK)
248
	keyring = key_alloc(__key_type_keyring, desc,
248
	keyring = key_alloc(__key_type_keyring, desc,
249
			    task_uid(task), task_gid(task), task,
249
			    current_uid(), current_gid(), current,
250
			    (KEY_POS_ALL & ~KEY_POS_SETATTR) | KEY_USR_ALL,
250
			    (KEY_POS_ALL & ~KEY_POS_SETATTR) | KEY_USR_ALL,
251
			    not_in_quota);
251
			    not_in_quota);
252
#elif defined(KEY_ALLOC_NEEDS_CRED)
252
#elif defined(KEY_ALLOC_NEEDS_CRED)
253
	keyring = key_alloc(__key_type_keyring, desc,
253
	keyring = key_alloc(__key_type_keyring, desc,
254
			    task_uid(task), task_gid(task), current_cred(),
254
			    current_uid(), current_gid(), current_cred(),
255
			    (KEY_POS_ALL & ~KEY_POS_SETATTR) | KEY_USR_ALL,
255
			    (KEY_POS_ALL & ~KEY_POS_SETATTR) | KEY_USR_ALL,
256
			    not_in_quota);
256
			    not_in_quota);
257
#else
257
#else
258
	keyring = key_alloc(__key_type_keyring, desc,
258
	keyring = key_alloc(__key_type_keyring, desc,
259
			    task_uid(task), task_gid(task),
259
			    current_uid(), current_gid(),
260
			    (KEY_POS_ALL & ~KEY_POS_SETATTR) | KEY_USR_ALL,
260
			    (KEY_POS_ALL & ~KEY_POS_SETATTR) | KEY_USR_ALL,
261
			    not_in_quota);
261
			    not_in_quota);
262
#endif
262
#endif
Lines 273-283 Link Here
273
    }
273
    }
274
274
275
    /* install the keyring */
275
    /* install the keyring */
276
    spin_lock_irq(&task->sighand->siglock);
276
    spin_lock_irq(&current->sighand->siglock);
277
    old = task_session_keyring(task);
277
    old = task_session_keyring(current);
278
    smp_wmb();
278
    smp_wmb();
279
    task_session_keyring(task) = keyring;
279
    task_session_keyring(current) = keyring;
280
    spin_unlock_irq(&task->sighand->siglock);
280
    spin_unlock_irq(&current->sighand->siglock);
281
281
282
    if (old)
282
    if (old)
283
	    key_put(old);
283
	    key_put(old);
Lines 340-346 Link Here
340
#ifdef LINUX_KEYRING_SUPPORT
340
#ifdef LINUX_KEYRING_SUPPORT
341
    if (code == 0) {
341
    if (code == 0) {
342
342
343
	(void) install_session_keyring(current, NULL);
343
	(void) install_session_keyring(NULL);
344
344
345
	if (current_session_keyring()) {
345
	if (current_session_keyring()) {
346
	    struct key *key;
346
	    struct key *key;

Return to bug 274353