To: amd-workers cc: Fcc: Subject: nfsx_ops patch X-Face: %2'i#(dROd-(2'`-!U)}q'%u@:^gnvj42}w_%pfh'2:An:m%i6{-2[':9~|7xX|:L`SHO'p ]-UMALX=kqKk8|HKk4\Pmw5DcsyJ?[ZAAjN=?>!.1K%}GUW"d8!@E&|NA[EyQ~TEtIW]2QYs:NJN{L yVwN(xW]~k|%U9apQK7M'ffVwjtmj&Ep_mO#}?k?yxDp!p:nEO\mS*KK0S}~a]H>n"WGvr;eO%uw[` |Dt'A/8}mWhfT -------- I'm soliciting opinions on a patch to nfxs_ops.c, included below. The base code is from the amd5.3-beta1 or amd920824upl28 versions. Background: I noticed that the INFORM_MOUNTD functionality (MOUNTPROC_UMNT calls to the mountd upon unmounting an nfs filesystem) was not working with nfsx map entries. Some digging and logging revealed that the nfs_umounted callback function was never called on the mounts making up the nfsx mount group. Arguably, it should, and that would take care of INFORM_MOUNTD. Fix: call the umounted handlers associated with the nfsx group explicitly in nfsx_fumount(). I first thought of doing that in the umounted handler of the nfsx mount itself, but it turns out that all the important information has been thrown away by then. The result seems to work as intented, but I'd really like to hear opinions or better fixes from the people in the know. --Andreas *** nfsx_ops.c.dist Sun May 31 09:13:00 1992 --- nfsx_ops.c Thu May 20 18:58:22 1993 *************** *** 478,483 **** --- 478,497 ---- */ for (n = nx->nx_v; n < nx->nx_v + nx->nx_c; n++) { mntfs *m = n->n_mnt; + am_node am; + + /* + * XXX: all the umounted handler needs is a + * mntfs pointer, so pass an am_node with the right + * pointer in it. + */ + bzero((voidp)&am, sizeof(am)); + am.am_mnt = m; + #ifdef DEBUG + dlog("calling underlying umounted on %s", m->mf_mount); + #endif + (*m->mf_ops->umounted)(&am); + if (n->n_error < 0) { if (m->mf_ops->fs_flags & FS_MKMNT) { (void) rmdirs(m->mf_mount);