aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/proc/generic.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/fs/proc/generic.c b/fs/proc/generic.c
index 7b3ae3cc0ef9..e659a0ff1da7 100644
--- a/fs/proc/generic.c
+++ b/fs/proc/generic.c
@@ -359,18 +359,18 @@ retry:
359 if (!ida_pre_get(&proc_inum_ida, GFP_KERNEL)) 359 if (!ida_pre_get(&proc_inum_ida, GFP_KERNEL))
360 return -ENOMEM; 360 return -ENOMEM;
361 361
362 spin_lock(&proc_inum_lock); 362 spin_lock_bh(&proc_inum_lock);
363 error = ida_get_new(&proc_inum_ida, &i); 363 error = ida_get_new(&proc_inum_ida, &i);
364 spin_unlock(&proc_inum_lock); 364 spin_unlock_bh(&proc_inum_lock);
365 if (error == -EAGAIN) 365 if (error == -EAGAIN)
366 goto retry; 366 goto retry;
367 else if (error) 367 else if (error)
368 return error; 368 return error;
369 369
370 if (i > UINT_MAX - PROC_DYNAMIC_FIRST) { 370 if (i > UINT_MAX - PROC_DYNAMIC_FIRST) {
371 spin_lock(&proc_inum_lock); 371 spin_lock_bh(&proc_inum_lock);
372 ida_remove(&proc_inum_ida, i); 372 ida_remove(&proc_inum_ida, i);
373 spin_unlock(&proc_inum_lock); 373 spin_unlock_bh(&proc_inum_lock);
374 return -ENOSPC; 374 return -ENOSPC;
375 } 375 }
376 *inum = PROC_DYNAMIC_FIRST + i; 376 *inum = PROC_DYNAMIC_FIRST + i;
@@ -379,9 +379,9 @@ retry:
379 379
380void proc_free_inum(unsigned int inum) 380void proc_free_inum(unsigned int inum)
381{ 381{
382 spin_lock(&proc_inum_lock); 382 spin_lock_bh(&proc_inum_lock);
383 ida_remove(&proc_inum_ida, inum - PROC_DYNAMIC_FIRST); 383 ida_remove(&proc_inum_ida, inum - PROC_DYNAMIC_FIRST);
384 spin_unlock(&proc_inum_lock); 384 spin_unlock_bh(&proc_inum_lock);
385} 385}
386 386
387static void *proc_follow_link(struct dentry *dentry, struct nameidata *nd) 387static void *proc_follow_link(struct dentry *dentry, struct nameidata *nd)