Date: Fri, 14 Oct 2016 03:22:57 -0700 From: Julian Elischer <julian@freebsd.org> To: "freebsd-fs@freebsd.org" <freebsd-fs@FreeBSD.org> Subject: oddness in 10,3 .. mnt_ref leak? Message-ID: <58942da1-0b65-2b34-d91b-2fafcfa7d86b@freebsd.org>
next in thread | raw e-mail | index | archive | help
I'm runnign 10.3 in our appliance and by chance I added code to print
out the mnt-ref values of struct mount as htey are being changed..
to my surprise that reference count seems to be wildly wrong..
I added the following code to be run when it is decremented:
#define MNT_REL(mp) do { \
if ((mp)->mnt_ref > 0) { \
(mp)->mnt_ref--; \
} else { \
printf("### %s (%s) negative mnt_ref, %d\n", __func__
,mp->mnt_stat.f_mntonname, mp->mnt_ref); \
(mp->mnt_ref = 0); \
} \
if ((mp)->mnt_ref == 0) \
wakeup((mp)); \
} while (0)
and I see this every few seconds:
### vfs_unbusy (/opt/pixel8/master_config) negative mnt_ref, 0
is there a chance that vfs_unbusy has no balancing MNT_REF when the
file system becomes active again?
I've looked through our patches (we do have some) but don't see a
reason for this in them.
Julian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?58942da1-0b65-2b34-d91b-2fafcfa7d86b>
