summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2007-02-02 08:31:55 -0500
committerJeff Garzik <jeff@garzik.org>2007-02-02 08:31:55 -0500
commitae2c27a78f1df5b0967069cd3b916cff1eb044c8 (patch)
treee67f1012e76185bac2e78bb04caa68ed1f7dc2a2 /fs
parenta608ab9cb6a5050394498b2520c6e7c162f4e2cf (diff)
parente34efe3b100d0fbdf053128956c3dd0bc68754d6 (diff)
downloadop-kernel-dev-ae2c27a78f1df5b0967069cd3b916cff1eb044c8.zip
op-kernel-dev-ae2c27a78f1df5b0967069cd3b916cff1eb044c8.tar.gz
Merge ../linux-2.6
Diffstat (limited to 'fs')
-rw-r--r--fs/nfsd/nfsfh.c2
-rw-r--r--fs/proc/base.c12
2 files changed, 12 insertions, 2 deletions
diff --git a/fs/nfsd/nfsfh.c b/fs/nfsd/nfsfh.c
index 98338a5..c59d6fb 100644
--- a/fs/nfsd/nfsfh.c
+++ b/fs/nfsd/nfsfh.c
@@ -269,7 +269,7 @@ fh_verify(struct svc_rqst *rqstp, struct svc_fh *fhp, int type, int access)
"acc=%x, error=%d\n",
dentry->d_parent->d_name.name,
dentry->d_name.name,
- access, (error >> 24));
+ access, ntohl(error));
}
out:
if (exp && !IS_ERR(exp))
diff --git a/fs/proc/base.c b/fs/proc/base.c
index ff7a668..1a979ea 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -2328,13 +2328,23 @@ static int proc_task_readdir(struct file * filp, void * dirent, filldir_t filldi
{
struct dentry *dentry = filp->f_path.dentry;
struct inode *inode = dentry->d_inode;
- struct task_struct *leader = get_proc_task(inode);
+ struct task_struct *leader = NULL;
struct task_struct *task;
int retval = -ENOENT;
ino_t ino;
int tid;
unsigned long pos = filp->f_pos; /* avoiding "long long" filp->f_pos */
+ task = get_proc_task(inode);
+ if (!task)
+ goto out_no_task;
+ rcu_read_lock();
+ if (pid_alive(task)) {
+ leader = task->group_leader;
+ get_task_struct(leader);
+ }
+ rcu_read_unlock();
+ put_task_struct(task);
if (!leader)
goto out_no_task;
retval = 0;
OpenPOWER on IntegriCloud