Fix a bug where operations was carried on even if not implemented,

leading to handling of an invalid fdip object.

Reported and tested by:	flo
MFC after:	2 months
X-MFC:		241519
This commit is contained in:
attilio 2012-11-03 23:32:32 +00:00
parent c99a93ed4c
commit 35cb5e8a85

View File

@ -358,12 +358,10 @@ fuse_vnop_create(struct vop_create_args *ap)
err = fdisp_wait_answ(fdip);
if (err == ENOSYS) {
debug_printf("create: got ENOSYS from daemon\n");
fsess_set_notimpl(mp, FUSE_CREATE);
fdisp_destroy(fdip);
} else if (err) {
debug_printf("create: darn, got err=%d from daemon\n", err);
if (err) {
if (err == ENOSYS)
fsess_set_notimpl(mp, FUSE_CREATE);
debug_printf("create: got err=%d from daemon\n", err);
goto out;
}
bringup: