From owner-freebsd-current@FreeBSD.ORG Sun May 10 13:08:08 2015 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3DB247BA; Sun, 10 May 2015 13:08:08 +0000 (UTC) Received: from esa-jnhn.mail.uoguelph.ca (esa-jnhn.mail.uoguelph.ca [131.104.91.44]) by mx1.freebsd.org (Postfix) with ESMTP id C64B61BC2; Sun, 10 May 2015 13:08:07 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2D+AwA4CE9V/95baINcg2NeBoMYwUQJgU4KhTdOAoFVFAEBAQEBAQGBCoQgAQEBBAEBASAEJyALDA8OChEZAgQlAQkmBggHBAEcBIgLDbNXknoBAQEBAQEBAQEBAQEBAQEBAQEBARiLOYQzAQEcGRsHgmiBRQWLMYkRghmCRoFNg1Y+gxyHaiKCBodHI4IJHIFuIjEBAQEBA3wJFwMfgQEBAQE X-IronPort-AV: E=Sophos;i="5.13,401,1427774400"; d="scan'208";a="210090147" Received: from muskoka.cs.uoguelph.ca (HELO zcs3.mail.uoguelph.ca) ([131.104.91.222]) by esa-jnhn.mail.uoguelph.ca with ESMTP; 10 May 2015 09:07:58 -0400 Received: from zcs3.mail.uoguelph.ca (localhost.localdomain [127.0.0.1]) by zcs3.mail.uoguelph.ca (Postfix) with ESMTP id 6DFD3B42F8; Sun, 10 May 2015 09:07:54 -0400 (EDT) Date: Sun, 10 May 2015 09:07:54 -0400 (EDT) From: Rick Macklem To: Doug Rabson Cc: freebsd current , Edward Tomasz =?utf-8?Q?Napiera=C5=82a?= , David Boyd49 Message-ID: <917688730.35175530.1431263274444.JavaMail.root@uoguelph.ca> In-Reply-To: <581797832.35173877.1431263005089.JavaMail.root@uoguelph.ca> Subject: Re: nmount, mountd drops high order MNT_xx flags during a mount update MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_35175528_844751710.1431263274441" X-Originating-IP: [172.17.95.11] X-Mailer: Zimbra 7.2.6_GA_2926 (ZimbraWebClient - FF3.0 (Win)/7.2.6_GA_2926) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 May 2015 13:08:08 -0000 ------=_Part_35175528_844751710.1431263274441 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Oops, I did my usual and forgot to attach the patch. Here it is, rick ----- Original Message ----- > Doug Rabson wrote: > > You could add a single integer-valued vfsopt which holds the > > high-order > > bits of f_flags? > > > I have created a patch that does this. It is on > https://reviews.freebsd.org/D2506 > (I have also attached it here, for those who don't use Phabricator.) > > Please review/comment on this. (Feel free to add yourself as a > reviewer, etc.) > > Also, David, if you can test this patch, it would be appreciated. > > Thanks for the suggestion Doug, rick > > > On 7 May 2015 at 02:10, Rick Macklem wrote: > > > > > David Boyd reported a problem to freebsd-current@ w.r.t. the > > > MNT_AUTOMOUNTED > > > flag getting cleared by mountd. > > > http://docs.FreeBSD.org/cgi/mid.cgi?1429477202.29812.38.camel > > > I just took a look at this and it's kinda ugly... > > > > > > mountd acquires a list of mounts via getmntinfo() and then does > > > an > > > nmount() for each of them to get rid of any exports. It uses > > > f_flags from the statfs returned by getmntinfo() as the 3rd > > > argument to nmount(). > > > --> Since nmount()s 3rd argument is a "int", it silently drops > > > any > > > MNT_xx flag in the high order 32bits of f_flags. At this > > > time, > > > it happens that MNT_AUTOMOUNTED is the only one, but... > > > > > > I can think of a couple of ways to fix this, but I don't like any > > > of > > > them;-) > > > > > > 1) I suppose mountd could check for each flag set in f_flags and > > > generate > > > a vfsopts string for it, but that means that every time a new > > > flag > > > that > > > can be updated is added to MNT_xx, this mountd.c code would have > > > to > > > updated. > > > --> Ugly!! > > > > > > 2) Require that all flags in MNT_UPDATEMASK be in the low order > > > 32bits. > > > I wouldn`t mind this except in means that the MNT_xx flags > > > must > > > be > > > redefined > > > and I don`t think that could get MFC`d. > > > > > > 3) Add a new newernmount(2) which has a 64bit flags argument > > > instead of > > > int. > > > > > > Hopefully someone can think of a nice way to fix this, rick > > > _______________________________________________ > > > freebsd-current@freebsd.org mailing list > > > http://lists.freebsd.org/mailman/listinfo/freebsd-current > > > To unsubscribe, send any mail to > > > "freebsd-current-unsubscribe@freebsd.org" > > > > > _______________________________________________ > > freebsd-current@freebsd.org mailing list > > http://lists.freebsd.org/mailman/listinfo/freebsd-current > > To unsubscribe, send any mail to > > "freebsd-current-unsubscribe@freebsd.org" > > > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to > "freebsd-current-unsubscribe@freebsd.org" > ------=_Part_35175528_844751710.1431263274441 Content-Type: text/x-patch; name=highbits.patch Content-Disposition: attachment; filename=highbits.patch Content-Transfer-Encoding: base64 LS0tIGtlcm4vdmZzX21vdW50LmMuc2F2bW50CTIwMTUtMDUtMDkgMTk6MzA6MTQuMDAwMDAwMDAw IC0wNDAwCisrKyBrZXJuL3Zmc19tb3VudC5jCTIwMTUtMDUtMTAgMDg6MzQ6NDUuMDAwMDAwMDAw IC0wNDAwCkBAIC01MzcsNiArNTM3LDcgQEAgdmZzX2Rvbm1vdW50KHN0cnVjdCB0aHJlYWQgKnRk LCB1aW50NjRfdAogCXN0cnVjdCB2ZnNvcHQgKm9wdCwgKnRtcF9vcHQ7CiAJY2hhciAqZnN0eXBl LCAqZnNwYXRoLCAqZXJybXNnOwogCWludCBlcnJvciwgZnN0eXBlbGVuLCBmc3BhdGhsZW4sIGVy cm1zZ19sZW4sIGVycm1zZ19wb3M7CisJdWludDY0X3QgZnNmbGFnX2hpZ2g7CiAKIAllcnJtc2cg PSBmc3BhdGggPSBOVUxMOwogCWVycm1zZ19sZW4gPSBmc3BhdGhsZW4gPSAwOwpAQCAtNjUzLDYg KzY1NCwyMCBAQCB2ZnNfZG9ubW91bnQoc3RydWN0IHRocmVhZCAqdGQsIHVpbnQ2NF90CiAJCQlm c2ZsYWdzIHw9IE1OVF9BVVRPTU9VTlRFRDsKIAkJCXZmc19mcmVlb3B0KG9wdGxpc3QsIG9wdCk7 CiAJCX0KKwkJZWxzZSBpZiAoc3RyY21wKG9wdC0+bmFtZSwgImZzZmxhZ2hpZ2giKSA9PSAwKSB7 CisJCQkvKgorCQkJICogVGhpcyBvcHRpb24gYWxsb3dzIGEgcHJvY2VzcyBkb2luZyBhIG1vdW50 IHVwZGF0ZQorCQkJICogdG8gc2V0IGFsbCB0aGUgaGlnaCBvcmRlciAzMmJpdHMgb2YgbW50X2Zs YWcgd2l0aAorCQkJICogb25lIG9wdGlvbi4gIFRoaXMgaXMgbmVlZGVkLCBzaW5jZSBubW91bnQo MikKKwkJCSAqIGFjY2VwdHMgYW4gImludCIgb3B0aW9uIGFuZCwgdGhlcmVmb3JlLCBvbmx5IHRh a2VzCisJCQkgKiB0aGUgbG93IG9yZGVyIDMyYml0cy4KKwkJCSAqLworCQkJaWYgKHZmc19jb3B5 b3B0KG9wdGxpc3QsICJmc2ZsYWdoaWdoIiwKKwkJCSAgICAmZnNmbGFnX2hpZ2gsIHNpemVvZihm c2ZsYWdfaGlnaCkpID09IDAgJiYKKwkJCSAgICAoZnNmbGFnX2hpZ2ggJiAweGZmZmZmZmZmVUxM KSA9PSAwKQorCQkJCWZzZmxhZ3MgfD0gZnNmbGFnX2hpZ2g7CisJCQl2ZnNfZnJlZW9wdChvcHRs aXN0LCBvcHQpOworCQl9CiAJfQogCiAJLyoKLS0tIHVzci5zYmluL21vdW50ZC9tb3VudGQuYy5v cmlnCTIwMTUtMDUtMDkgMjI6MDQ6MTUuMDAwMDAwMDAwIC0wNDAwCisrKyB1c3Iuc2Jpbi9tb3Vu dGQvbW91bnRkLmMJMjAxNS0wNS0wOSAyMjoyNzowNi4wMDAwMDAwMDAgLTA0MDAKQEAgLTE2NDks NiArMTY0OSw3IEBAIGdldF9leHBvcnRsaXN0KHZvaWQpCiAJaW50IGlvdmxlbjsKIAlpbnQgZG9u ZTsKIAlzdHJ1Y3QgbmZzZXhfYXJncyBlYXJnczsKKwl1aW50NjRfdCBmc2ZsYWdfaGlnaDsKIAog CWlmIChzdXNwZW5kX25mc2QgIT0gMCkKIAkJKHZvaWQpbmZzc3ZjKE5GU1NWQ19TVVNQRU5ETkZT RCwgTlVMTCk7CkBAIC0xNzA2LDYgKzE3MDcsOCBAQCBnZXRfZXhwb3J0bGlzdCh2b2lkKQogCQli dWlsZF9pb3ZlYygmaW92LCAmaW92bGVuLCAidXBkYXRlIiwgTlVMTCwgMCk7CiAJCWJ1aWxkX2lv dmVjKCZpb3YsICZpb3ZsZW4sICJleHBvcnQiLCAmZXhwb3J0LCBzaXplb2YoZXhwb3J0KSk7CiAJ CWJ1aWxkX2lvdmVjKCZpb3YsICZpb3ZsZW4sICJlcnJtc2ciLCBlcnJtc2csIHNpemVvZihlcnJt c2cpKTsKKwkJYnVpbGRfaW92ZWMoJmlvdiwgJmlvdmxlbiwgImZzZmxhZ2hpZ2giLCAmZnNmbGFn X2hpZ2gsCisJCSAgICBzaXplb2YoZnNmbGFnX2hpZ2gpKTsKIAl9CiAKIAlmb3IgKGkgPSAwOyBp IDwgbnVtOyBpKyspIHsKQEAgLTE3MzYsNiArMTczOSw5IEBAIGdldF9leHBvcnRsaXN0KHZvaWQp CiAJCWlvdlszXS5pb3ZfbGVuID0gc3RybGVuKGZzcC0+Zl9tbnRvbm5hbWUpICsgMTsKIAkJaW92 WzVdLmlvdl9iYXNlID0gZnNwLT5mX21udGZyb21uYW1lOwogCQlpb3ZbNV0uaW92X2xlbiA9IHN0 cmxlbihmc3AtPmZfbW50ZnJvbW5hbWUpICsgMTsKKwkJLyogVXNlICJmc2ZsYWdoaWdoIiB0byBz ZXQgdGhlIGhpZ2ggb3JkZXIgYml0cyBvZiBmX2ZsYWdzLiAqLworCQlmc2ZsYWdfaGlnaCA9IChm c3AtPmZfZmxhZ3MgJiAweGZmZmZmZmZmMDAwMDAwMDBVTEwpOworCiAJCWVycm1zZ1swXSA9ICdc MCc7CiAKIAkJLyoKQEAgLTIzOTQsNiArMjQwMCw3IEBAIGRvX21vdW50KHN0cnVjdCBleHBvcnRs aXN0ICplcCwgc3RydWN0IGcKIAlpbnQgaSwgaW92bGVuOwogCWludCByZXQ7CiAJc3RydWN0IG5m c2V4X2FyZ3MgbmZzZWE7CisJdWludDY0X3QgZnNmbGFnX2hpZ2g7CiAKIAllYXAgPSAmbmZzZWEu ZXhwb3J0OwogCkBAIC0yNDI5LDYgKzI0MzYsMTIgQEAgZG9fbW91bnQoc3RydWN0IGV4cG9ydGxp c3QgKmVwLCBzdHJ1Y3QgZwogCQlidWlsZF9pb3ZlYygmaW92LCAmaW92bGVuLCAiZXhwb3J0Iiwg ZWFwLAogCQkgICAgc2l6ZW9mIChzdHJ1Y3QgZXhwb3J0X2FyZ3MpKTsKIAkJYnVpbGRfaW92ZWMo JmlvdiwgJmlvdmxlbiwgImVycm1zZyIsIGVycm1zZywgc2l6ZW9mKGVycm1zZykpOworCisJCS8q IFVzZSAiZnNmbGFnaGlnaCIgdG8gc2V0IHRoZSBoaWdoIG9yZGVyIGJpdHMgb2YgZl9mbGFncy4g Ki8KKwkJZnNmbGFnX2hpZ2ggPSAoZnNiLT5mX2ZsYWdzICYgMHhmZmZmZmZmZjAwMDAwMDAwVUxM KTsKKwkJaWYgKGZzZmxhZ19oaWdoICE9IDApCisJCQlidWlsZF9pb3ZlYygmaW92LCAmaW92bGVu LCAiZnNmbGFnaGlnaCIsICZmc2ZsYWdfaGlnaCwKKwkJCSAgICBzaXplb2YoZnNmbGFnX2hpZ2gp KTsKIAl9CiAKIAl3aGlsZSAoIWRvbmUpIHsK ------=_Part_35175528_844751710.1431263274441--