diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2013-09-22 14:17:15 -0400 |
---|---|---|
committer | Chanho Park <chanho61.park@samsung.com> | 2014-08-08 15:21:36 +0900 |
commit | 0e7b6727c239125748e9ea9a720c96b9e2885dad (patch) | |
tree | 892ddf0f5a3e60776ccdb399b63a73635fd09906 /fs | |
parent | ad64b6a2993707c648122fda6be02e747e8dcdfb (diff) | |
download | linux-3.10-0e7b6727c239125748e9ea9a720c96b9e2885dad.tar.gz linux-3.10-0e7b6727c239125748e9ea9a720c96b9e2885dad.tar.bz2 linux-3.10-0e7b6727c239125748e9ea9a720c96b9e2885dad.zip |
upstream: consolidate the reassignments of ->f_op in ->open() instances
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/char_dev.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/char_dev.c b/fs/char_dev.c index afc2bb69178..94b5f60076d 100644 --- a/fs/char_dev.c +++ b/fs/char_dev.c @@ -368,6 +368,7 @@ void cdev_put(struct cdev *p) */ static int chrdev_open(struct inode *inode, struct file *filp) { + const struct file_operations *fops; struct cdev *p; struct cdev *new = NULL; int ret = 0; @@ -400,10 +401,11 @@ static int chrdev_open(struct inode *inode, struct file *filp) return ret; ret = -ENXIO; - filp->f_op = fops_get(p->ops); - if (!filp->f_op) + fops = fops_get(p->ops); + if (!fops) goto out_cdev_put; + replace_fops(filp, fops); if (filp->f_op->open) { ret = filp->f_op->open(inode, filp); if (ret) |