From 7c37f74ff9697aa2c14a1245e2ce58bd8e0b8de4 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 26 Jan 2010 15:04:02 -0800 Subject: [PATCH] --- yaml --- r: 179978 b: refs/heads/master c: b04da8bfdfbbd79544cab2fadfdc12e87eb01600 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/fcntl.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 2b2d4a5eb4bb..6afa7d158b7e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9a3cbe3265c7714e8ee423feb6e27a080af79608 +refs/heads/master: b04da8bfdfbbd79544cab2fadfdc12e87eb01600 diff --git a/trunk/fs/fcntl.c b/trunk/fs/fcntl.c index 97e01dc0d95f..5ef953e6f908 100644 --- a/trunk/fs/fcntl.c +++ b/trunk/fs/fcntl.c @@ -199,7 +199,9 @@ static int setfl(int fd, struct file * filp, unsigned long arg) static void f_modown(struct file *filp, struct pid *pid, enum pid_type type, int force) { - write_lock_irq(&filp->f_owner.lock); + unsigned long flags; + + write_lock_irqsave(&filp->f_owner.lock, flags); if (force || !filp->f_owner.pid) { put_pid(filp->f_owner.pid); filp->f_owner.pid = get_pid(pid); @@ -211,7 +213,7 @@ static void f_modown(struct file *filp, struct pid *pid, enum pid_type type, filp->f_owner.euid = cred->euid; } } - write_unlock_irq(&filp->f_owner.lock); + write_unlock_irqrestore(&filp->f_owner.lock, flags); } int __f_setown(struct file *filp, struct pid *pid, enum pid_type type,