projects
/
linux-2.6-microblaze.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ndr: fix translation in ndr_encode_posix_acl()
[linux-2.6-microblaze.git]
/
fs
/
fcntl.c
diff --git
a/fs/fcntl.c
b/fs/fcntl.c
index
f946bec
..
68added
100644
(file)
--- a/
fs/fcntl.c
+++ b/
fs/fcntl.c
@@
-150,7
+150,8
@@
void f_delown(struct file *filp)
pid_t f_getown(struct file *filp)
{
pid_t pid = 0;
pid_t f_getown(struct file *filp)
{
pid_t pid = 0;
- read_lock(&filp->f_owner.lock);
+
+ read_lock_irq(&filp->f_owner.lock);
rcu_read_lock();
if (pid_task(filp->f_owner.pid, filp->f_owner.pid_type)) {
pid = pid_vnr(filp->f_owner.pid);
rcu_read_lock();
if (pid_task(filp->f_owner.pid, filp->f_owner.pid_type)) {
pid = pid_vnr(filp->f_owner.pid);
@@
-158,7
+159,7
@@
pid_t f_getown(struct file *filp)
pid = -pid;
}
rcu_read_unlock();
pid = -pid;
}
rcu_read_unlock();
- read_unlock(&filp->f_owner.lock);
+ read_unlock
_irq
(&filp->f_owner.lock);
return pid;
}
return pid;
}
@@
-208,7
+209,7
@@
static int f_getown_ex(struct file *filp, unsigned long arg)
struct f_owner_ex owner = {};
int ret = 0;
struct f_owner_ex owner = {};
int ret = 0;
- read_lock(&filp->f_owner.lock);
+ read_lock
_irq
(&filp->f_owner.lock);
rcu_read_lock();
if (pid_task(filp->f_owner.pid, filp->f_owner.pid_type))
owner.pid = pid_vnr(filp->f_owner.pid);
rcu_read_lock();
if (pid_task(filp->f_owner.pid, filp->f_owner.pid_type))
owner.pid = pid_vnr(filp->f_owner.pid);
@@
-231,7
+232,7
@@
static int f_getown_ex(struct file *filp, unsigned long arg)
ret = -EINVAL;
break;
}
ret = -EINVAL;
break;
}
- read_unlock(&filp->f_owner.lock);
+ read_unlock
_irq
(&filp->f_owner.lock);
if (!ret) {
ret = copy_to_user(owner_p, &owner, sizeof(owner));
if (!ret) {
ret = copy_to_user(owner_p, &owner, sizeof(owner));
@@
-249,10
+250,10
@@
static int f_getowner_uids(struct file *filp, unsigned long arg)
uid_t src[2];
int err;
uid_t src[2];
int err;
- read_lock(&filp->f_owner.lock);
+ read_lock
_irq
(&filp->f_owner.lock);
src[0] = from_kuid(user_ns, filp->f_owner.uid);
src[1] = from_kuid(user_ns, filp->f_owner.euid);
src[0] = from_kuid(user_ns, filp->f_owner.uid);
src[1] = from_kuid(user_ns, filp->f_owner.euid);
- read_unlock(&filp->f_owner.lock);
+ read_unlock
_irq
(&filp->f_owner.lock);
err = put_user(src[0], &dst[0]);
err |= put_user(src[1], &dst[1]);
err = put_user(src[0], &dst[0]);
err |= put_user(src[1], &dst[1]);
@@
-1003,13
+1004,14
@@
static void kill_fasync_rcu(struct fasync_struct *fa, int sig, int band)
{
while (fa) {
struct fown_struct *fown;
{
while (fa) {
struct fown_struct *fown;
+ unsigned long flags;
if (fa->magic != FASYNC_MAGIC) {
printk(KERN_ERR "kill_fasync: bad magic number in "
"fasync_struct!\n");
return;
}
if (fa->magic != FASYNC_MAGIC) {
printk(KERN_ERR "kill_fasync: bad magic number in "
"fasync_struct!\n");
return;
}
- read_lock
(&fa->fa_lock
);
+ read_lock
_irqsave(&fa->fa_lock, flags
);
if (fa->fa_file) {
fown = &fa->fa_file->f_owner;
/* Don't send SIGURG to processes which have not set a
if (fa->fa_file) {
fown = &fa->fa_file->f_owner;
/* Don't send SIGURG to processes which have not set a
@@
-1018,7
+1020,7
@@
static void kill_fasync_rcu(struct fasync_struct *fa, int sig, int band)
if (!(sig == SIGURG && fown->signum == 0))
send_sigio(fown, fa->fa_fd, band);
}
if (!(sig == SIGURG && fown->signum == 0))
send_sigio(fown, fa->fa_fd, band);
}
- read_unlock
(&fa->fa_lock
);
+ read_unlock
_irqrestore(&fa->fa_lock, flags
);
fa = rcu_dereference(fa->fa_next);
}
}
fa = rcu_dereference(fa->fa_next);
}
}