procfs: return ENOENT on opening a being-removed proc entry
authorDaisuke Ogino <ogino.daisuke@jp.fujitsu.com>
Tue, 26 Jul 2011 23:08:37 +0000 (16:08 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 26 Jul 2011 23:49:43 +0000 (16:49 -0700)
Change the return value to ENOENT.  This return value is then returned
when opening the proc entry that have been removed.  For example,
open("/proc/bus/pci/XX/YY") when the corresponding device is being
hot-removed.

Signed-off-by: Daisuke Ogino <ogino.daisuke@jp.fujitsu.com>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Acked-by: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/proc/inode.c

index 74b48cfa1bb2d4be464180b6913c6cd28462eb5f..7ed72d6c1c6fc4d2c528e7c5578c2836a2875914 100644 (file)
@@ -319,7 +319,7 @@ static int proc_reg_open(struct inode *inode, struct file *file)
        if (!pde->proc_fops) {
                spin_unlock(&pde->pde_unload_lock);
                kfree(pdeo);
-               return -EINVAL;
+               return -ENOENT;
        }
        pde->pde_users++;
        open = pde->proc_fops->open;