diff options
author | Jonathan Corbet <corbet@lwn.net> | 2008-05-18 23:39:11 +0200 |
---|---|---|
committer | Jonathan Corbet <corbet@lwn.net> | 2008-06-20 22:05:53 +0200 |
commit | a30427d92d0bc152b833088e4a305bbeb1a0c162 (patch) | |
tree | 038408c24095627830f8950b3791ea2655270112 /fs/char_dev.c | |
parent | Add a bunch of cycle_kernel_lock() calls (diff) | |
download | linux-a30427d92d0bc152b833088e4a305bbeb1a0c162.tar.xz linux-a30427d92d0bc152b833088e4a305bbeb1a0c162.zip |
Add a comment in chrdev_open()
I stared at this code for a while and almost deleted it before
understanding crept into my slow brain. Hopefully this makes life easier
for the next person to happen on it.
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Diffstat (limited to '')
-rw-r--r-- | fs/char_dev.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/char_dev.c b/fs/char_dev.c index 68e510b88457..a54d69369b2f 100644 --- a/fs/char_dev.c +++ b/fs/char_dev.c @@ -373,6 +373,8 @@ static int chrdev_open(struct inode *inode, struct file *filp) return -ENXIO; new = container_of(kobj, struct cdev, kobj); spin_lock(&cdev_lock); + /* Check i_cdev again in case somebody beat us to it while + we dropped the lock. */ p = inode->i_cdev; if (!p) { inode->i_cdev = p = new; |