From: Etienne Dechamps Date: Thu, 27 Sep 2012 14:05:15 +0000 (+0200) Subject: Fix VOP_CLOSE() in userspace. X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=commitdiff_plain;h=274091c07482773c7e81cbe70f0b46b4606048d0;p=zfs.git Fix VOP_CLOSE() in userspace. Currently, for unknown reasons, VOP_CLOSE() is a no-op in userspace. This causes file descriptor leaks. This is especially problematic with long ztest runs, since zpool.cache is opened repeatedly and never closed, resulting in resource exhaustion (EMFILE errors). This patch fixes the issue by making VOP_CLOSE() do what it is supposed to do. Signed-off-by: Brian Behlendorf Issue #989 --- diff --git a/include/sys/zfs_context.h b/include/sys/zfs_context.h index d8347a3..ad282c4 100644 --- a/include/sys/zfs_context.h +++ b/include/sys/zfs_context.h @@ -495,7 +495,7 @@ typedef struct vsecattr { extern int fop_getattr(vnode_t *vp, vattr_t *vap); -#define VOP_CLOSE(vp, f, c, o, cr, ct) 0 +#define VOP_CLOSE(vp, f, c, o, cr, ct) vn_close(vp) #define VOP_PUTPAGE(vp, of, sz, fl, cr, ct) 0 #define VOP_GETATTR(vp, vap, fl, cr, ct) fop_getattr((vp), (vap));