diff options
author | Jonathan Corbet <corbet@lwn.net> | 2008-05-19 01:39:11 +0400 |
---|---|---|
committer | Jonathan Corbet <corbet@lwn.net> | 2008-06-21 00:05:53 +0400 |
commit | a30427d92d0bc152b833088e4a305bbeb1a0c162 (patch) | |
tree | 038408c24095627830f8950b3791ea2655270112 /fs | |
parent | f2b9857eee17797541b845782ade4d7a9d50f843 (diff) | |
download | linux-a30427d92d0bc152b833088e4a305bbeb1a0c162.tar.xz |
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 'fs')
-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; |