diff options
-rw-r--r-- | fs/proc/generic.c | 12 |
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 | ||
380 | void proc_free_inum(unsigned int inum) | 380 | void 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 | ||
387 | static void *proc_follow_link(struct dentry *dentry, struct nameidata *nd) | 387 | static void *proc_follow_link(struct dentry *dentry, struct nameidata *nd) |