All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <1516115201.5784.4.camel@primarydata.com>

diff --git a/a/1.txt b/N1/1.txt
index c96e012..28db46b 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,47 +1,75 @@
-T24gTW9uLCAyMDE4LTAxLTE1IGF0IDE4OjMwICswMTAwLCBNYXggS2VsbGVybWFubiB3cm90ZToN
-Cj4gbmZzL3N1cGVyOiBzZXQgTVNfUE9TSVhBQ0wgb25seSBpZiBBQ0wgc3VwcG9ydCBpcyBlbmFi
-bGVkDQo+IA0KPiBUaGUgY29kZSBjb21tZW50IHNheXMgIldlIHdpbGwgW2FwcGx5IHRoZSB1bWFz
-a10gb3Vyc2VsdmVzIiwgYnV0IHRoYXQNCj4gaGFwcGVucyBpbiBwb3NpeF9hY2xfY3JlYXRlKCkg
-b25seSBpZiB0aGUga2VybmVsIGhhcyBQT1NJWCBBQ0wNCj4gc3VwcG9ydC4gIFdpdGhvdXQgaXQs
-IHBvc2l4X2FjbF9jcmVhdGUoKSBpcyBhIGlzIGFuIGVtcHR5IGR1bW15DQo+IGZ1bmN0aW9uLg0K
-PiANCj4gU28gbGV0J3Mgbm90IHByZXRlbmQgd2Ugd2lsbCBhcHBseSB0aGUgdW1hc2sgaWYgd2Ug
-Y2FuIGFscmVhZHkga25vdw0KPiB0aGF0IHdlIHdpbGwgbmV2ZXIuDQo+IA0KPiBUaGlzIGZpeGVz
-IGEgcHJvYmxlbSB3aGVyZSB0aGUgdW1hc2sgaXMgYWx3YXlzIGlnbm9yZWQgaW4gdGhlIE5GUw0K
-PiBjbGllbnQgd2hlbiBjb21waWxlZCB3aXRob3V0IENPTkZJR19GU19QT1NJWF9BQ0wuICBUaGlz
-IGlzIGEgNCB5ZWFyDQo+IG9sZCByZWdyZXNzaW9uIGNhdXNlZCBieSBjb21taXQgMDEzY2RmMTA4
-OGQ3MjMgd2hpY2ggaXRzZWxmIHdhcyBub3QNCj4gY29tcGxldGVseSB3cm9uZywgYnV0IGZhaWxl
-ZCB0byBjb25zaWRlciBhbGwgdGhlIHNpZGUgZWZmZWN0cyBieQ0KPiBtaXNkZXNpZ25lZCBWRlMg
-Y29kZS4NCj4gDQo+IFRoZXJlIGFyZSB0d28gY29tcGlsZS10aW1lIGNoZWNrcyBhbmQgb25lIHJ1
-bnRpbWUgY2hlY2s6DQo+IA0KPiAtIElmIENPTkZJR19GU19QT1NJWF9BQ0w9biwgdGhlbiBNU19Q
-T1NJWEFDTCBpcyBuZXZlciBzZXQuDQo+IA0KPiAtIElmIENPTkZJR19GU19QT1NJWF9BQ0w9eSBh
-bmQgQ09ORklHX05GU19WM19BQ0w9biwgdGhlbiBvbmx5IE5GU3Y0DQo+ICAgaGFzIEFDTCBzdXBw
-b3J0IChhbmQgY2Fubm90IGJlIGRpc2FibGVkKSwgYW5kIHdlIG5lZWQgdG8gY2hlY2sgZm9yDQo+
-ICAgInZlcnNpb249PTQiLg0KPiANCj4gLSBJZiBDT05GSUdfRlNfUE9TSVhfQUNMPXkgYW5kIENP
-TkZJR19ORlNfVjNfQUNMPXksIE1TX1BPU0lYQUNMIGlzDQo+ICAgYWx3YXlzIHNldCwgYXMgYmVm
-b3JlLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogTWF4IEtlbGxlcm1hbm4gPG1rQGNtNGFsbC5jb20+
-DQo+IC0tLQ0KPiAgZnMvbmZzL3N1cGVyLmMgfCAgIDE1ICsrKysrKysrKysrLS0tLQ0KPiAgMSBm
-aWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZm
-IC0tZ2l0IGEvZnMvbmZzL3N1cGVyLmMgYi9mcy9uZnMvc3VwZXIuYw0KPiBpbmRleCAyMTZmNjdk
-NjI4YjMuLmVjNGUxZjI3NzVlMCAxMDA2NDQNCj4gLS0tIGEvZnMvbmZzL3N1cGVyLmMNCj4gKysr
-IGIvZnMvbmZzL3N1cGVyLmMNCj4gQEAgLTIzMzgsMTAgKzIzMzgsMTcgQEAgdm9pZCBuZnNfZmls
-bF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLA0KPiBzdHJ1Y3QgbmZzX21vdW50X2luZm8g
-Km1vdW50X2luZm8pDQo+ICAJCXNiLT5zX2Jsb2Nrc2l6ZSA9IG5mc19ibG9ja19zaXplKGRhdGEt
-PmJzaXplLCAmc2ItDQo+ID5zX2Jsb2Nrc2l6ZV9iaXRzKTsNCj4gIA0KPiAgCWlmIChzZXJ2ZXIt
-Pm5mc19jbGllbnQtPnJwY19vcHMtPnZlcnNpb24gIT0gMikgew0KPiAtCQkvKiBUaGUgVkZTIHNo
-b3VsZG4ndCBhcHBseSB0aGUgdW1hc2sgdG8gbW9kZSBiaXRzLg0KPiBXZSB3aWxsIGRvDQo+IC0J
-CSAqIHNvIG91cnNlbHZlcyB3aGVuIG5lY2Vzc2FyeS4NCj4gLQkJICovDQo+IC0JCXNiLT5zX2Zs
-YWdzIHw9IE1TX1BPU0lYQUNMOw0KPiArI2lmZGVmIENPTkZJR19GU19QT1NJWF9BQ0wNCj4gKyNp
-Zm5kZWYgQ09ORklHX05GU19WM19BQ0wNCj4gKwkJaWYgKG5mc3MtPm5mc19jbGllbnQtPnJwY19v
-cHMtPnZlcnNpb24gPT0gNCkNCj4gKyNlbmRpZg0KPiArCQkJLyogVGhlIFZGUyBzaG91bGRuJ3Qg
-YXBwbHkgdGhlIHVtYXNrIHRvIG1vZGUNCj4gKwkJCSAqIGJpdHMuIFdlIHdpbGwgZG8gc28gb3Vy
-c2VsdmVzIHdoZW4NCj4gKwkJCSAqIG5lY2Vzc2FyeS4NCj4gKwkJCSAqLw0KPiArCQkJc2ItPnNf
-ZmxhZ3MgfD0gTVNfUE9TSVhBQ0w7DQo+ICsjZW5kaWYNCj4gKw0KPiAgCQlzYi0+c190aW1lX2dy
-YW4gPSAxOw0KPiAgCQlzYi0+c19leHBvcnRfb3AgPSAmbmZzX2V4cG9ydF9vcHM7DQo+ICAJfQ0K
-DQpUaGUgYWJvdmUgaWxsdXN0cmF0ZXMgZXhhY3RseSB3aHkgSSd2ZSBhc2tlZCBwZW9wbGUgX25l
-dmVyXyB0byBtYWtlDQphbnl0aGluZyBjb25kaXRpb25hbCBvbiBycGNfb3BzLT52ZXJzaW9uLiBQ
-bGVhc2UgdXNlIGEgTkZTIGNhcGFiaWxpdHkNCihpLmUuIE5GU19TQihzYiktPmNhcHMpIGZvciB0
-aGlzIGtpbmQgb2YgdGhpbmcuIFRoYXQgZXhwcmVzc2VzIHRoZQ0KY29uZGl0aW9uIGluIHRlcm1z
-IG9mIHRoZSBmdW5jdGlvbmFsaXR5IHdlIHdhbnQgaW5zdGVhZCBvZiBhIHdoaW1zaWNhbA0KcHJv
-dG9jb2wgdmVyc2lvbiBudW1iZXIuDQoNClRoYW5rcw0KICBUcm9uZA0KLS0gDQpUcm9uZCBNeWts
-ZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRhaW5lciwgUHJpbWFyeURhdGENCnRyb25kLm15
-a2xlYnVzdEBwcmltYXJ5ZGF0YS5jb20NCg==
+On Mon, 2018-01-15 at 18:30 +0100, Max Kellermann wrote:
+> nfs/super: set MS_POSIXACL only if ACL support is enabled
+> 
+> The code comment says "We will [apply the umask] ourselves", but that
+> happens in posix_acl_create() only if the kernel has POSIX ACL
+> support.  Without it, posix_acl_create() is a is an empty dummy
+> function.
+> 
+> So let's not pretend we will apply the umask if we can already know
+> that we will never.
+> 
+> This fixes a problem where the umask is always ignored in the NFS
+> client when compiled without CONFIG_FS_POSIX_ACL.  This is a 4 year
+> old regression caused by commit 013cdf1088d723 which itself was not
+> completely wrong, but failed to consider all the side effects by
+> misdesigned VFS code.
+> 
+> There are two compile-time checks and one runtime check:
+> 
+> - If CONFIG_FS_POSIX_ACL=n, then MS_POSIXACL is never set.
+> 
+> - If CONFIG_FS_POSIX_ACL=y and CONFIG_NFS_V3_ACL=n, then only NFSv4
+>   has ACL support (and cannot be disabled), and we need to check for
+>   "version==4".
+> 
+> - If CONFIG_FS_POSIX_ACL=y and CONFIG_NFS_V3_ACL=y, MS_POSIXACL is
+>   always set, as before.
+> 
+> Signed-off-by: Max Kellermann <mk@cm4all.com>
+> ---
+>  fs/nfs/super.c |   15 +++++++++++----
+>  1 file changed, 11 insertions(+), 4 deletions(-)
+> 
+> diff --git a/fs/nfs/super.c b/fs/nfs/super.c
+> index 216f67d628b3..ec4e1f2775e0 100644
+> --- a/fs/nfs/super.c
+> +++ b/fs/nfs/super.c
+> @@ -2338,10 +2338,17 @@ void nfs_fill_super(struct super_block *sb,
+> struct nfs_mount_info *mount_info)
+>  		sb->s_blocksize = nfs_block_size(data->bsize, &sb-
+> >s_blocksize_bits);
+>  
+>  	if (server->nfs_client->rpc_ops->version != 2) {
+> -		/* The VFS shouldn't apply the umask to mode bits.
+> We will do
+> -		 * so ourselves when necessary.
+> -		 */
+> -		sb->s_flags |= MS_POSIXACL;
+> +#ifdef CONFIG_FS_POSIX_ACL
+> +#ifndef CONFIG_NFS_V3_ACL
+> +		if (nfss->nfs_client->rpc_ops->version == 4)
+> +#endif
+> +			/* The VFS shouldn't apply the umask to mode
+> +			 * bits. We will do so ourselves when
+> +			 * necessary.
+> +			 */
+> +			sb->s_flags |= MS_POSIXACL;
+> +#endif
+> +
+>  		sb->s_time_gran = 1;
+>  		sb->s_export_op = &nfs_export_ops;
+>  	}
+
+The above illustrates exactly why I've asked people _never_ to make
+anything conditional on rpc_ops->version. Please use a NFS capability
+(i.e. NFS_SB(sb)->caps) for this kind of thing. That expresses the
+condition in terms of the functionality we want instead of a whimsical
+protocol version number.
+
+Thanks
+  Trond
+-- 
+Trond Myklebust
+Linux NFS client maintainer, PrimaryData
+trond.myklebust@primarydata.com
diff --git a/a/content_digest b/N1/content_digest
index c505b8a..18bb91b 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -12,52 +12,80 @@
  " linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>\0"
  "\00:1\0"
  "b\0"
- "T24gTW9uLCAyMDE4LTAxLTE1IGF0IDE4OjMwICswMTAwLCBNYXggS2VsbGVybWFubiB3cm90ZToN\n"
- "Cj4gbmZzL3N1cGVyOiBzZXQgTVNfUE9TSVhBQ0wgb25seSBpZiBBQ0wgc3VwcG9ydCBpcyBlbmFi\n"
- "bGVkDQo+IA0KPiBUaGUgY29kZSBjb21tZW50IHNheXMgIldlIHdpbGwgW2FwcGx5IHRoZSB1bWFz\n"
- "a10gb3Vyc2VsdmVzIiwgYnV0IHRoYXQNCj4gaGFwcGVucyBpbiBwb3NpeF9hY2xfY3JlYXRlKCkg\n"
- "b25seSBpZiB0aGUga2VybmVsIGhhcyBQT1NJWCBBQ0wNCj4gc3VwcG9ydC4gIFdpdGhvdXQgaXQs\n"
- "IHBvc2l4X2FjbF9jcmVhdGUoKSBpcyBhIGlzIGFuIGVtcHR5IGR1bW15DQo+IGZ1bmN0aW9uLg0K\n"
- "PiANCj4gU28gbGV0J3Mgbm90IHByZXRlbmQgd2Ugd2lsbCBhcHBseSB0aGUgdW1hc2sgaWYgd2Ug\n"
- "Y2FuIGFscmVhZHkga25vdw0KPiB0aGF0IHdlIHdpbGwgbmV2ZXIuDQo+IA0KPiBUaGlzIGZpeGVz\n"
- "IGEgcHJvYmxlbSB3aGVyZSB0aGUgdW1hc2sgaXMgYWx3YXlzIGlnbm9yZWQgaW4gdGhlIE5GUw0K\n"
- "PiBjbGllbnQgd2hlbiBjb21waWxlZCB3aXRob3V0IENPTkZJR19GU19QT1NJWF9BQ0wuICBUaGlz\n"
- "IGlzIGEgNCB5ZWFyDQo+IG9sZCByZWdyZXNzaW9uIGNhdXNlZCBieSBjb21taXQgMDEzY2RmMTA4\n"
- "OGQ3MjMgd2hpY2ggaXRzZWxmIHdhcyBub3QNCj4gY29tcGxldGVseSB3cm9uZywgYnV0IGZhaWxl\n"
- "ZCB0byBjb25zaWRlciBhbGwgdGhlIHNpZGUgZWZmZWN0cyBieQ0KPiBtaXNkZXNpZ25lZCBWRlMg\n"
- "Y29kZS4NCj4gDQo+IFRoZXJlIGFyZSB0d28gY29tcGlsZS10aW1lIGNoZWNrcyBhbmQgb25lIHJ1\n"
- "bnRpbWUgY2hlY2s6DQo+IA0KPiAtIElmIENPTkZJR19GU19QT1NJWF9BQ0w9biwgdGhlbiBNU19Q\n"
- "T1NJWEFDTCBpcyBuZXZlciBzZXQuDQo+IA0KPiAtIElmIENPTkZJR19GU19QT1NJWF9BQ0w9eSBh\n"
- "bmQgQ09ORklHX05GU19WM19BQ0w9biwgdGhlbiBvbmx5IE5GU3Y0DQo+ICAgaGFzIEFDTCBzdXBw\n"
- "b3J0IChhbmQgY2Fubm90IGJlIGRpc2FibGVkKSwgYW5kIHdlIG5lZWQgdG8gY2hlY2sgZm9yDQo+\n"
- "ICAgInZlcnNpb249PTQiLg0KPiANCj4gLSBJZiBDT05GSUdfRlNfUE9TSVhfQUNMPXkgYW5kIENP\n"
- "TkZJR19ORlNfVjNfQUNMPXksIE1TX1BPU0lYQUNMIGlzDQo+ICAgYWx3YXlzIHNldCwgYXMgYmVm\n"
- "b3JlLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogTWF4IEtlbGxlcm1hbm4gPG1rQGNtNGFsbC5jb20+\n"
- "DQo+IC0tLQ0KPiAgZnMvbmZzL3N1cGVyLmMgfCAgIDE1ICsrKysrKysrKysrLS0tLQ0KPiAgMSBm\n"
- "aWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZm\n"
- "IC0tZ2l0IGEvZnMvbmZzL3N1cGVyLmMgYi9mcy9uZnMvc3VwZXIuYw0KPiBpbmRleCAyMTZmNjdk\n"
- "NjI4YjMuLmVjNGUxZjI3NzVlMCAxMDA2NDQNCj4gLS0tIGEvZnMvbmZzL3N1cGVyLmMNCj4gKysr\n"
- "IGIvZnMvbmZzL3N1cGVyLmMNCj4gQEAgLTIzMzgsMTAgKzIzMzgsMTcgQEAgdm9pZCBuZnNfZmls\n"
- "bF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLA0KPiBzdHJ1Y3QgbmZzX21vdW50X2luZm8g\n"
- "Km1vdW50X2luZm8pDQo+ICAJCXNiLT5zX2Jsb2Nrc2l6ZSA9IG5mc19ibG9ja19zaXplKGRhdGEt\n"
- "PmJzaXplLCAmc2ItDQo+ID5zX2Jsb2Nrc2l6ZV9iaXRzKTsNCj4gIA0KPiAgCWlmIChzZXJ2ZXIt\n"
- "Pm5mc19jbGllbnQtPnJwY19vcHMtPnZlcnNpb24gIT0gMikgew0KPiAtCQkvKiBUaGUgVkZTIHNo\n"
- "b3VsZG4ndCBhcHBseSB0aGUgdW1hc2sgdG8gbW9kZSBiaXRzLg0KPiBXZSB3aWxsIGRvDQo+IC0J\n"
- "CSAqIHNvIG91cnNlbHZlcyB3aGVuIG5lY2Vzc2FyeS4NCj4gLQkJICovDQo+IC0JCXNiLT5zX2Zs\n"
- "YWdzIHw9IE1TX1BPU0lYQUNMOw0KPiArI2lmZGVmIENPTkZJR19GU19QT1NJWF9BQ0wNCj4gKyNp\n"
- "Zm5kZWYgQ09ORklHX05GU19WM19BQ0wNCj4gKwkJaWYgKG5mc3MtPm5mc19jbGllbnQtPnJwY19v\n"
- "cHMtPnZlcnNpb24gPT0gNCkNCj4gKyNlbmRpZg0KPiArCQkJLyogVGhlIFZGUyBzaG91bGRuJ3Qg\n"
- "YXBwbHkgdGhlIHVtYXNrIHRvIG1vZGUNCj4gKwkJCSAqIGJpdHMuIFdlIHdpbGwgZG8gc28gb3Vy\n"
- "c2VsdmVzIHdoZW4NCj4gKwkJCSAqIG5lY2Vzc2FyeS4NCj4gKwkJCSAqLw0KPiArCQkJc2ItPnNf\n"
- "ZmxhZ3MgfD0gTVNfUE9TSVhBQ0w7DQo+ICsjZW5kaWYNCj4gKw0KPiAgCQlzYi0+c190aW1lX2dy\n"
- "YW4gPSAxOw0KPiAgCQlzYi0+c19leHBvcnRfb3AgPSAmbmZzX2V4cG9ydF9vcHM7DQo+ICAJfQ0K\n"
- "DQpUaGUgYWJvdmUgaWxsdXN0cmF0ZXMgZXhhY3RseSB3aHkgSSd2ZSBhc2tlZCBwZW9wbGUgX25l\n"
- "dmVyXyB0byBtYWtlDQphbnl0aGluZyBjb25kaXRpb25hbCBvbiBycGNfb3BzLT52ZXJzaW9uLiBQ\n"
- "bGVhc2UgdXNlIGEgTkZTIGNhcGFiaWxpdHkNCihpLmUuIE5GU19TQihzYiktPmNhcHMpIGZvciB0\n"
- "aGlzIGtpbmQgb2YgdGhpbmcuIFRoYXQgZXhwcmVzc2VzIHRoZQ0KY29uZGl0aW9uIGluIHRlcm1z\n"
- "IG9mIHRoZSBmdW5jdGlvbmFsaXR5IHdlIHdhbnQgaW5zdGVhZCBvZiBhIHdoaW1zaWNhbA0KcHJv\n"
- "dG9jb2wgdmVyc2lvbiBudW1iZXIuDQoNClRoYW5rcw0KICBUcm9uZA0KLS0gDQpUcm9uZCBNeWts\n"
- "ZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRhaW5lciwgUHJpbWFyeURhdGENCnRyb25kLm15\n"
- a2xlYnVzdEBwcmltYXJ5ZGF0YS5jb20NCg==
+ "On Mon, 2018-01-15 at 18:30 +0100, Max Kellermann wrote:\n"
+ "> nfs/super: set MS_POSIXACL only if ACL support is enabled\n"
+ "> \n"
+ "> The code comment says \"We will [apply the umask] ourselves\", but that\n"
+ "> happens in posix_acl_create() only if the kernel has POSIX ACL\n"
+ "> support.  Without it, posix_acl_create() is a is an empty dummy\n"
+ "> function.\n"
+ "> \n"
+ "> So let's not pretend we will apply the umask if we can already know\n"
+ "> that we will never.\n"
+ "> \n"
+ "> This fixes a problem where the umask is always ignored in the NFS\n"
+ "> client when compiled without CONFIG_FS_POSIX_ACL.  This is a 4 year\n"
+ "> old regression caused by commit 013cdf1088d723 which itself was not\n"
+ "> completely wrong, but failed to consider all the side effects by\n"
+ "> misdesigned VFS code.\n"
+ "> \n"
+ "> There are two compile-time checks and one runtime check:\n"
+ "> \n"
+ "> - If CONFIG_FS_POSIX_ACL=n, then MS_POSIXACL is never set.\n"
+ "> \n"
+ "> - If CONFIG_FS_POSIX_ACL=y and CONFIG_NFS_V3_ACL=n, then only NFSv4\n"
+ ">   has ACL support (and cannot be disabled), and we need to check for\n"
+ ">   \"version==4\".\n"
+ "> \n"
+ "> - If CONFIG_FS_POSIX_ACL=y and CONFIG_NFS_V3_ACL=y, MS_POSIXACL is\n"
+ ">   always set, as before.\n"
+ "> \n"
+ "> Signed-off-by: Max Kellermann <mk@cm4all.com>\n"
+ "> ---\n"
+ ">  fs/nfs/super.c |   15 +++++++++++----\n"
+ ">  1 file changed, 11 insertions(+), 4 deletions(-)\n"
+ "> \n"
+ "> diff --git a/fs/nfs/super.c b/fs/nfs/super.c\n"
+ "> index 216f67d628b3..ec4e1f2775e0 100644\n"
+ "> --- a/fs/nfs/super.c\n"
+ "> +++ b/fs/nfs/super.c\n"
+ "> @@ -2338,10 +2338,17 @@ void nfs_fill_super(struct super_block *sb,\n"
+ "> struct nfs_mount_info *mount_info)\n"
+ ">  \t\tsb->s_blocksize = nfs_block_size(data->bsize, &sb-\n"
+ "> >s_blocksize_bits);\n"
+ ">  \n"
+ ">  \tif (server->nfs_client->rpc_ops->version != 2) {\n"
+ "> -\t\t/* The VFS shouldn't apply the umask to mode bits.\n"
+ "> We will do\n"
+ "> -\t\t * so ourselves when necessary.\n"
+ "> -\t\t */\n"
+ "> -\t\tsb->s_flags |= MS_POSIXACL;\n"
+ "> +#ifdef CONFIG_FS_POSIX_ACL\n"
+ "> +#ifndef CONFIG_NFS_V3_ACL\n"
+ "> +\t\tif (nfss->nfs_client->rpc_ops->version == 4)\n"
+ "> +#endif\n"
+ "> +\t\t\t/* The VFS shouldn't apply the umask to mode\n"
+ "> +\t\t\t * bits. We will do so ourselves when\n"
+ "> +\t\t\t * necessary.\n"
+ "> +\t\t\t */\n"
+ "> +\t\t\tsb->s_flags |= MS_POSIXACL;\n"
+ "> +#endif\n"
+ "> +\n"
+ ">  \t\tsb->s_time_gran = 1;\n"
+ ">  \t\tsb->s_export_op = &nfs_export_ops;\n"
+ ">  \t}\n"
+ "\n"
+ "The above illustrates exactly why I've asked people _never_ to make\n"
+ "anything conditional on rpc_ops->version. Please use a NFS capability\n"
+ "(i.e. NFS_SB(sb)->caps) for this kind of thing. That expresses the\n"
+ "condition in terms of the functionality we want instead of a whimsical\n"
+ "protocol version number.\n"
+ "\n"
+ "Thanks\n"
+ "  Trond\n"
+ "-- \n"
+ "Trond Myklebust\n"
+ "Linux NFS client maintainer, PrimaryData\n"
+ trond.myklebust@primarydata.com
 
-5cd612826d3944342db530d58f0ecfb4b3ab7078cb7ab17791b8beee3c527313
+810579295bfb94eeff8072a38d4fb7f0a1b3a0f0cca5632c6ce5e9501e9e1766

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.