X-Git-Url: http://ftp.safe.ca/?p=safe%2Fjmp%2Flinux-2.6;a=blobdiff_plain;f=fs%2Fproc%2Fbase.c;h=a7310841c83149e406c1089d30a8c27b2c1e67fb;hp=623e2ffb5d2bb5ae7fbb153af881a24f6f9932a0;hb=0f2cc4ecd81dc1917a041dc93db0ada28f8356fa;hpb=1fae4cfb97302289bb5df6a8195eb28385d0b002 diff --git a/fs/proc/base.c b/fs/proc/base.c index 623e2ff..a731084 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -647,17 +647,11 @@ static int mounts_release(struct inode *inode, struct file *file) static unsigned mounts_poll(struct file *file, poll_table *wait) { struct proc_mounts *p = file->private_data; - struct mnt_namespace *ns = p->ns; unsigned res = POLLIN | POLLRDNORM; - poll_wait(file, &ns->poll, wait); - - spin_lock(&vfsmount_lock); - if (p->event != ns->event) { - p->event = ns->event; + poll_wait(file, &p->ns->poll, wait); + if (mnt_had_events(p)) res |= POLLERR | POLLPRI; - } - spin_unlock(&vfsmount_lock); return res; }