diff options
author | Miklos Szeredi <mszeredi@suse.cz> | 2012-08-30 19:24:35 +0200 |
---|---|---|
committer | Miklos Szeredi <mszeredi@suse.cz> | 2012-08-30 19:24:35 +0200 |
commit | 8d39d801d64658d7d69e4754f287a71e9f9bbcb8 (patch) | |
tree | 22550a9179212937352ab45763c41aa8119f18fc | |
parent | bbd99797973f2cebd905bf6469ce08b531ab258f (diff) | |
download | op-kernel-dev-8d39d801d64658d7d69e4754f287a71e9f9bbcb8.zip op-kernel-dev-8d39d801d64658d7d69e4754f287a71e9f9bbcb8.tar.gz |
cuse: kill connection on initialization error
Luca Risolia reported that a CUSE daemon will continue to run even if
initialization of the emulated device failes for some reason (e.g. the device
number is already registered by another driver).
This patch disconnects the fuse device on error, which will make the userspace
CUSE daemon exit, albeit without indication about what the problem was.
Reported-by: Luca Risolia <luca.risolia@studio.unibo.it>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
-rw-r--r-- | fs/fuse/cuse.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/fs/fuse/cuse.c b/fs/fuse/cuse.c index 3426521..ee8d550 100644 --- a/fs/fuse/cuse.c +++ b/fs/fuse/cuse.c @@ -396,7 +396,7 @@ err_device: err_region: unregister_chrdev_region(devt, 1); err: - fc->conn_error = 1; + fuse_conn_kill(fc); goto out; } @@ -532,8 +532,6 @@ static int cuse_channel_release(struct inode *inode, struct file *file) cdev_del(cc->cdev); } - /* kill connection and shutdown channel */ - fuse_conn_kill(&cc->fc); rc = fuse_dev_release(inode, file); /* puts the base reference */ return rc; |