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

diff --git a/a/1.txt b/N1/1.txt
index d95da14..d24b982 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,73 +1,119 @@
-T24gU2F0LCAyMDE3LTExLTE4IGF0IDEzOjA3IC0wNTAwLCBCb3JpcyBPc3Ryb3Zza3kgd3JvdGU6
-DQo+IA0KPiBPbiAxMS8xOC8yMDE3IDEyOjM5IFBNLCBUcm9uZCBNeWtsZWJ1c3Qgd3JvdGU6DQo+
-ID4gT24gU2F0LCAyMDE3LTExLTE4IGF0IDEyOjE5IC0wNTAwLCBCb3JpcyBPc3Ryb3Zza3kgd3Jv
-dGU6DQo+ID4gPiBDb21taXQgZmNkODg0M2M0MDZiNDY0MzM4NTdhZTQ1ZTVlOWQ4NGIwMWE3ZDIw
-YiBicmVha3Mgb24gb2xkZXINCj4gPiA+IGNvbXBpbGVycyB3aGljaCBjYW5ub3QgcHJvY2VzcyBp
-bml0aWFsaXplcnMgZm9yIGFub255bW91cw0KPiA+ID4gc3RydWN0dXJlczoNCj4gPiA+IA0KPiA+
-ID4gK2NvbnN0IG5mczRfc3RhdGVpZCBpbnZhbGlkX3N0YXRlaWQgPSB7DQo+ID4gPiArICAgICAg
-IHsNCj4gPiA+ICsgICAgICAgICAgICAgICAuc2VxaWQgPSBjcHVfdG9fYmUzMigweGZmZmZmZmZm
-VSksDQo+ID4gPiArICAgICAgICAgICAgICAgLm90aGVyID0geyAwIH0sDQo+ID4gPiArICAgICAg
-IH0sDQo+ID4gPiArICAgICAgIC50eXBlID0gTkZTNF9JTlZBTElEX1NUQVRFSURfVFlQRSwNCj4g
-PiA+ICt9Ow0KPiA+ID4gDQo+ID4gPiANCj4gPiA+IC9ob21lL2J1aWxkL2xpbnV4LWxpbnVzL2Zz
-L25mcy9uZnM0c3RhdGUuYzo3NDogZXJyb3I6IHVua25vd24NCj4gPiA+IGZpZWxkDQo+ID4gPiDi
-gJhzZXFpZOKAmSBzcGVjaWZpZWQgaW4gaW5pdGlhbGl6ZXINCj4gPiA+IC9ob21lL2J1aWxkL2xp
-bnV4LWxpbnVzL2ZzL25mcy9uZnM0c3RhdGUuYzo3NDogd2FybmluZzogbWlzc2luZw0KPiA+ID4g
-YnJhY2VzDQo+ID4gPiBhcm91bmQgaW5pdGlhbGl6ZXINCj4gPiA+IC9ob21lL2J1aWxkL2xpbnV4
-LWxpbnVzL2ZzL25mcy9uZnM0c3RhdGUuYzo3NDogd2FybmluZzogKG5lYXINCj4gPiA+IGluaXRp
-YWxpemF0aW9uIGZvciDigJhpbnZhbGlkX3N0YXRlaWQuPGFub255bW91cz4uZGF0YeKAmSkNCj4g
-PiA+IC9ob21lL2J1aWxkL2xpbnV4LWxpbnVzL2ZzL25mcy9uZnM0c3RhdGUuYzo3NDogd2Fybmlu
-Zzogb3ZlcmZsb3cNCj4gPiA+IGluDQo+ID4gPiBpbXBsaWNpdCBjb25zdGFudCBjb252ZXJzaW9u
-DQo+ID4gPiAvaG9tZS9idWlsZC9saW51eC1saW51cy9mcy9uZnMvbmZzNHN0YXRlLmM6NzU6IGVy
-cm9yOiB1bmtub3duDQo+ID4gPiBmaWVsZA0KPiA+ID4g4oCYb3RoZXLigJkgc3BlY2lmaWVkIGlu
-IGluaXRpYWxpemVyDQo+ID4gPiAvaG9tZS9idWlsZC9saW51eC1saW51cy9mcy9uZnMvbmZzNHN0
-YXRlLmM6NzU6IGVycm9yOiBleHRyYSBicmFjZQ0KPiA+ID4gZ3JvdXANCj4gPiA+IGF0IGVuZCBv
-ZiBpbml0aWFsaXplcg0KPiA+ID4gL2hvbWUvYnVpbGQvbGludXgtbGludXMvZnMvbmZzL25mczRz
-dGF0ZS5jOjc1OiBlcnJvcjogKG5lYXINCj4gPiA+IGluaXRpYWxpemF0aW9uIGZvciDigJhpbnZh
-bGlkX3N0YXRlaWQuPGFub255bW91cz7igJkpDQo+ID4gPiAvaG9tZS9idWlsZC9saW51eC1saW51
-cy9mcy9uZnMvbmZzNHN0YXRlLmM6NzU6IHdhcm5pbmc6IGV4Y2Vzcw0KPiA+ID4gZWxlbWVudHMN
-Cj4gPiA+IGluIHVuaW9uIGluaXRpYWxpemVyDQo+ID4gPiAvaG9tZS9idWlsZC9saW51eC1saW51
-cy9mcy9uZnMvbmZzNHN0YXRlLmM6NzU6IHdhcm5pbmc6IChuZWFyDQo+ID4gPiBpbml0aWFsaXph
-dGlvbiBmb3Ig4oCYaW52YWxpZF9zdGF0ZWlkLjxhbm9ueW1vdXM+4oCZKQ0KPiA+ID4gbWFrZVs0
-XTogKioqIFtmcy9uZnMvbmZzNHN0YXRlLm9dIEVycm9yIDENCj4gPiA+IG1ha2VbM106ICoqKiBb
-ZnMvbmZzXSBFcnJvciAyDQo+ID4gPiANCj4gPiA+IA0KPiA+ID4gRkMtNjQgPGJ1aWxkQGJ1aWxk
-LW1rMjp+PiBnY2MgLS12ZXJzaW9uDQo+ID4gPiBnY2MgKEdDQykgNC40LjQgMjAxMDA1MDMgKFJl
-ZCBIYXQgNC40LjQtMikNCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiBBIHNpbWlsYXIgYnVnIHdhcyBm
-aXhlZCBieQ0KPiA+ID4gZTA3MTRlYzRmOWVmZTdiODY4MjhiMGRjYzA3N2ZkOGY1ZDhlNWU5MQ0K
-PiA+ID4gYnV0DQo+ID4gPiBJIGRvbid0IHRoaW5rIHRoZSBzYW1lIGFwcHJvYWNoIGNhbiB3b3Jr
-IGhlcmUuDQo+ID4gDQo+ID4gDQo+ID4gSSBkb24ndCBoYXZlIGFueSBzZXR1cHMgd2l0aCBnY2Mg
-NC40LjQuIFdoYXQgaXMgaXQgZXhwZWN0aW5nIGhlcmU/DQo+ID4gSXMNCj4gPiBpdCBleHBlY3Rp
-bmcgYW4gZXh0cmEgc2V0IG9mIGJyYWNlcyBkdWUgdG8gdGhlIGFub255bW91cyAic3RydWN0Ij8N
-Cj4gPiANCj4gDQo+IE5vLCB0aGF0IHdvbid0IHdvcmsgKGF0IGxlYXN0IEkgY291bGRuJ3QgZ2V0
-IGl0IHRvIHdvcmspIGJlY2F1c2UgdGhlIA0KPiBzb2x1dGlvbiBmcm9tIGUwNzE0ZWM0ZjllIGFz
-c3VtZXMgdGhhdCB0aGUgYW5vbnltb3VzIHN0cnVjdCBpcyB0aGUNCj4gZmlyc3QgDQo+IG9uZSBp
-biB0aGUgZW52ZWxvcGluZyBzdHJ1Y3QuDQo+IA0KPiBJdCB3b3JrZWQgb25seSBpZiBJICh0aGlz
-IGlzIGEgc21hbGwgQyBwcm9ncmFtIHdpdGggZXF1aXZhbGVudA0KPiBzdHJ1Y3RzKToNCj4gDQo+
-IHN0cnVjdCBuZnM0X3N0YXRlaWRfc3RydWN0IHsNCj4gICAgICAgICAgdW5pb24gew0KPiAgICAg
-ICAgICAgICAgICAgIC8vY2hhciBkYXRhWzRdOw0KPiAgICAgICAgICAgICAgICAgIHN0cnVjdCB7
-DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzZXFpZDsNCj4gICAgICAgICAg
-ICAgICAgICAgICAgICAgIGNoYXIgb3RoZXJbNl07DQo+ICAgICAgICAgICAgICAgICAgfSBfX2F0
-dHJpYnV0ZV9fICgocGFja2VkKSk7DQo+IAkJY2hhciBkYXRhWzRdOw0KPiAgICAgICAgICB9Ow0K
-PiBhbmQgdGhlbg0KPiANCj4gY29uc3QgbmZzNF9zdGF0ZWlkIGludmFsaWRfc3RhdGVpZCA9IHsN
-Cj4gICAgICAgICAgew0KPiAgICAgICAgICAgICAgICAgICAgey5zZXFpZCA9IDB4ZmZmZmZmZmZV
-LA0KPiAgICAgICAgICAgICAgICAgICAgLm90aGVyID0geyAwIH0gfSwNCj4gICAgICAgICAgfSwN
-Cj4gICAgICAgICAgLnR5cGUgPSBORlM0X0lOVkFMSURfU1RBVEVJRF9UWVBFLA0KPiB9Ow0KPiAN
-Cj4gSWYgSSBrZWVwIGRhdGFbNF0gd2hlcmUgaXQgaXMgbm93IEkgZ2V0IGNvbXBpbGVyIGVycm9y
-DQo+IA0KPiBhbi5jOjM1OjIwOiBlcnJvcjogZmllbGQgbmFtZSBub3QgaW4gcmVjb3JkIG9yIHVu
-aW9uIGluaXRpYWxpemVyDQo+ICAgICAgICAgICAgICAgICAgICAgey5zZXFpZCA9IDB4ZmZmZmZm
-ZmZVLA0KPiAgICAgICAgICAgICAgICAgICAgICBeDQo+IGFuLmM6MzU6MjA6IG5vdGU6IChuZWFy
-IGluaXRpYWxpemF0aW9uIGZvciANCj4gJ2ludmFsaWRfc3RhdGVpZC48YW5vbnltb3VzPi5kYXRh
-JykNCj4gYW4uYzozNToyOTogd2FybmluZzogb3ZlcmZsb3cgaW4gaW1wbGljaXQgY29uc3RhbnQg
-Y29udmVyc2lvbiBbLQ0KPiBXb3ZlcmZsb3ddDQo+ICAgICAgICAgICAgICAgICAgICAgey5zZXFp
-ZCA9IDB4ZmZmZmZmZmZVLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+
-fn5+fg0KPiBhbi5jOjM2OjE5OiBlcnJvcjogZmllbGQgbmFtZSBub3QgaW4gcmVjb3JkIG9yIHVu
-aW9uIGluaXRpYWxpemVyDQo+ICAgICAgICAgICAgICAgICAgICAgLm90aGVyID0geyAwIH0gfSwN
-Cj4gICAgICAgICAgICAgICAgICAgICBeDQo+IGFuLmM6MzY6MTk6IG5vdGU6IChuZWFyIGluaXRp
-YWxpemF0aW9uIGZvciANCj4gJ2ludmFsaWRfc3RhdGVpZC48YW5vbnltb3VzPi5kYXRhJykNCj4g
-YW4uYzozNjoxOTogd2FybmluZzogYnJhY2VzIGFyb3VuZCBzY2FsYXIgaW5pdGlhbGl6ZXINCj4g
-YW4uYzozNjoxOTogbm90ZTogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIA0KPiAnaW52YWxpZF9z
-dGF0ZWlkLjxhbm9ueW1vdXM+LmRhdGFbMV0nKQ0KPiANCj4gSSBkb24ndCBrbm93IGlmIHlvdSB3
-YW50IHRvIGNoYW5nZSBwdWJsaWMgaGVhZGVyIGZpbGUganVzdCB0byBnZXQNCj4gYXJvdW5kIA0K
-PiB0aGlzIHByb2JsZW0uDQoNClNpZ2guLi4uIE9LLCBob3cgYWJvdXQgc29tZXRoaW5nIGxpa2Ug
-dGhlIGZvbGxvd2luZyB0aGVuOg0KDQp7IC5kYXRhID0geyAweGZmLCAweGZmLCAweGZmLCAweGZm
-LCAwIH0sIH0NCg0KLS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRh
-aW5lciwgUHJpbWFyeURhdGENCnRyb25kLm15a2xlYnVzdEBwcmltYXJ5ZGF0YS5jb20NCg==
+On Sat, 2017-11-18 at 13:07 -0500, Boris Ostrovsky wrote:
+> 
+> On 11/18/2017 12:39 PM, Trond Myklebust wrote:
+> > On Sat, 2017-11-18 at 12:19 -0500, Boris Ostrovsky wrote:
+> > > Commit fcd8843c406b46433857ae45e5e9d84b01a7d20b breaks on older
+> > > compilers which cannot process initializers for anonymous
+> > > structures:
+> > > 
+> > > +const nfs4_stateid invalid_stateid = {
+> > > +       {
+> > > +               .seqid = cpu_to_be32(0xffffffffU),
+> > > +               .other = { 0 },
+> > > +       },
+> > > +       .type = NFS4_INVALID_STATEID_TYPE,
+> > > +};
+> > > 
+> > > 
+> > > /home/build/linux-linus/fs/nfs/nfs4state.c:74: error: unknown
+> > > field
+> > > ‘seqid’ specified in initializer
+> > > /home/build/linux-linus/fs/nfs/nfs4state.c:74: warning: missing
+> > > braces
+> > > around initializer
+> > > /home/build/linux-linus/fs/nfs/nfs4state.c:74: warning: (near
+> > > initialization for ‘invalid_stateid.<anonymous>.data’)
+> > > /home/build/linux-linus/fs/nfs/nfs4state.c:74: warning: overflow
+> > > in
+> > > implicit constant conversion
+> > > /home/build/linux-linus/fs/nfs/nfs4state.c:75: error: unknown
+> > > field
+> > > ‘other’ specified in initializer
+> > > /home/build/linux-linus/fs/nfs/nfs4state.c:75: error: extra brace
+> > > group
+> > > at end of initializer
+> > > /home/build/linux-linus/fs/nfs/nfs4state.c:75: error: (near
+> > > initialization for ‘invalid_stateid.<anonymous>’)
+> > > /home/build/linux-linus/fs/nfs/nfs4state.c:75: warning: excess
+> > > elements
+> > > in union initializer
+> > > /home/build/linux-linus/fs/nfs/nfs4state.c:75: warning: (near
+> > > initialization for ‘invalid_stateid.<anonymous>’)
+> > > make[4]: *** [fs/nfs/nfs4state.o] Error 1
+> > > make[3]: *** [fs/nfs] Error 2
+> > > 
+> > > 
+> > > FC-64 <build@build-mk2:~> gcc --version
+> > > gcc (GCC) 4.4.4 20100503 (Red Hat 4.4.4-2)
+> > > 
+> > > 
+> > > A similar bug was fixed by
+> > > e0714ec4f9efe7b86828b0dcc077fd8f5d8e5e91
+> > > but
+> > > I don't think the same approach can work here.
+> > 
+> > 
+> > I don't have any setups with gcc 4.4.4. What is it expecting here?
+> > Is
+> > it expecting an extra set of braces due to the anonymous "struct"?
+> > 
+> 
+> No, that won't work (at least I couldn't get it to work) because the 
+> solution from e0714ec4f9e assumes that the anonymous struct is the
+> first 
+> one in the enveloping struct.
+> 
+> It worked only if I (this is a small C program with equivalent
+> structs):
+> 
+> struct nfs4_stateid_struct {
+>          union {
+>                  //char data[4];
+>                  struct {
+>                          unsigned seqid;
+>                          char other[6];
+>                  } __attribute__ ((packed));
+> 		char data[4];
+>          };
+> and then
+> 
+> const nfs4_stateid invalid_stateid = {
+>          {
+>                    {.seqid = 0xffffffffU,
+>                    .other = { 0 } },
+>          },
+>          .type = NFS4_INVALID_STATEID_TYPE,
+> };
+> 
+> If I keep data[4] where it is now I get compiler error
+> 
+> an.c:35:20: error: field name not in record or union initializer
+>                     {.seqid = 0xffffffffU,
+>                      ^
+> an.c:35:20: note: (near initialization for 
+> 'invalid_stateid.<anonymous>.data')
+> an.c:35:29: warning: overflow in implicit constant conversion [-
+> Woverflow]
+>                     {.seqid = 0xffffffffU,
+>                               ^~~~~~~~~~~
+> an.c:36:19: error: field name not in record or union initializer
+>                     .other = { 0 } },
+>                     ^
+> an.c:36:19: note: (near initialization for 
+> 'invalid_stateid.<anonymous>.data')
+> an.c:36:19: warning: braces around scalar initializer
+> an.c:36:19: note: (near initialization for 
+> 'invalid_stateid.<anonymous>.data[1]')
+> 
+> I don't know if you want to change public header file just to get
+> around 
+> this problem.
+
+Sigh.... OK, how about something like the following then:
+
+{ .data = { 0xff, 0xff, 0xff, 0xff, 0 }, }
+
+-- 
+Trond Myklebust
+Linux NFS client maintainer, PrimaryData
+trond.myklebust@primarydata.com
diff --git a/a/content_digest b/N1/content_digest
index ceafa81..dc81544 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -10,78 +10,124 @@
  " linux-nfs@vger.kernel.org <linux-nfs@vger.kernel.org>\0"
  "\00:1\0"
  "b\0"
- "T24gU2F0LCAyMDE3LTExLTE4IGF0IDEzOjA3IC0wNTAwLCBCb3JpcyBPc3Ryb3Zza3kgd3JvdGU6\n"
- "DQo+IA0KPiBPbiAxMS8xOC8yMDE3IDEyOjM5IFBNLCBUcm9uZCBNeWtsZWJ1c3Qgd3JvdGU6DQo+\n"
- "ID4gT24gU2F0LCAyMDE3LTExLTE4IGF0IDEyOjE5IC0wNTAwLCBCb3JpcyBPc3Ryb3Zza3kgd3Jv\n"
- "dGU6DQo+ID4gPiBDb21taXQgZmNkODg0M2M0MDZiNDY0MzM4NTdhZTQ1ZTVlOWQ4NGIwMWE3ZDIw\n"
- "YiBicmVha3Mgb24gb2xkZXINCj4gPiA+IGNvbXBpbGVycyB3aGljaCBjYW5ub3QgcHJvY2VzcyBp\n"
- "bml0aWFsaXplcnMgZm9yIGFub255bW91cw0KPiA+ID4gc3RydWN0dXJlczoNCj4gPiA+IA0KPiA+\n"
- "ID4gK2NvbnN0IG5mczRfc3RhdGVpZCBpbnZhbGlkX3N0YXRlaWQgPSB7DQo+ID4gPiArICAgICAg\n"
- "IHsNCj4gPiA+ICsgICAgICAgICAgICAgICAuc2VxaWQgPSBjcHVfdG9fYmUzMigweGZmZmZmZmZm\n"
- "VSksDQo+ID4gPiArICAgICAgICAgICAgICAgLm90aGVyID0geyAwIH0sDQo+ID4gPiArICAgICAg\n"
- "IH0sDQo+ID4gPiArICAgICAgIC50eXBlID0gTkZTNF9JTlZBTElEX1NUQVRFSURfVFlQRSwNCj4g\n"
- "PiA+ICt9Ow0KPiA+ID4gDQo+ID4gPiANCj4gPiA+IC9ob21lL2J1aWxkL2xpbnV4LWxpbnVzL2Zz\n"
- "L25mcy9uZnM0c3RhdGUuYzo3NDogZXJyb3I6IHVua25vd24NCj4gPiA+IGZpZWxkDQo+ID4gPiDi\n"
- "gJhzZXFpZOKAmSBzcGVjaWZpZWQgaW4gaW5pdGlhbGl6ZXINCj4gPiA+IC9ob21lL2J1aWxkL2xp\n"
- "bnV4LWxpbnVzL2ZzL25mcy9uZnM0c3RhdGUuYzo3NDogd2FybmluZzogbWlzc2luZw0KPiA+ID4g\n"
- "YnJhY2VzDQo+ID4gPiBhcm91bmQgaW5pdGlhbGl6ZXINCj4gPiA+IC9ob21lL2J1aWxkL2xpbnV4\n"
- "LWxpbnVzL2ZzL25mcy9uZnM0c3RhdGUuYzo3NDogd2FybmluZzogKG5lYXINCj4gPiA+IGluaXRp\n"
- "YWxpemF0aW9uIGZvciDigJhpbnZhbGlkX3N0YXRlaWQuPGFub255bW91cz4uZGF0YeKAmSkNCj4g\n"
- "PiA+IC9ob21lL2J1aWxkL2xpbnV4LWxpbnVzL2ZzL25mcy9uZnM0c3RhdGUuYzo3NDogd2Fybmlu\n"
- "Zzogb3ZlcmZsb3cNCj4gPiA+IGluDQo+ID4gPiBpbXBsaWNpdCBjb25zdGFudCBjb252ZXJzaW9u\n"
- "DQo+ID4gPiAvaG9tZS9idWlsZC9saW51eC1saW51cy9mcy9uZnMvbmZzNHN0YXRlLmM6NzU6IGVy\n"
- "cm9yOiB1bmtub3duDQo+ID4gPiBmaWVsZA0KPiA+ID4g4oCYb3RoZXLigJkgc3BlY2lmaWVkIGlu\n"
- "IGluaXRpYWxpemVyDQo+ID4gPiAvaG9tZS9idWlsZC9saW51eC1saW51cy9mcy9uZnMvbmZzNHN0\n"
- "YXRlLmM6NzU6IGVycm9yOiBleHRyYSBicmFjZQ0KPiA+ID4gZ3JvdXANCj4gPiA+IGF0IGVuZCBv\n"
- "ZiBpbml0aWFsaXplcg0KPiA+ID4gL2hvbWUvYnVpbGQvbGludXgtbGludXMvZnMvbmZzL25mczRz\n"
- "dGF0ZS5jOjc1OiBlcnJvcjogKG5lYXINCj4gPiA+IGluaXRpYWxpemF0aW9uIGZvciDigJhpbnZh\n"
- "bGlkX3N0YXRlaWQuPGFub255bW91cz7igJkpDQo+ID4gPiAvaG9tZS9idWlsZC9saW51eC1saW51\n"
- "cy9mcy9uZnMvbmZzNHN0YXRlLmM6NzU6IHdhcm5pbmc6IGV4Y2Vzcw0KPiA+ID4gZWxlbWVudHMN\n"
- "Cj4gPiA+IGluIHVuaW9uIGluaXRpYWxpemVyDQo+ID4gPiAvaG9tZS9idWlsZC9saW51eC1saW51\n"
- "cy9mcy9uZnMvbmZzNHN0YXRlLmM6NzU6IHdhcm5pbmc6IChuZWFyDQo+ID4gPiBpbml0aWFsaXph\n"
- "dGlvbiBmb3Ig4oCYaW52YWxpZF9zdGF0ZWlkLjxhbm9ueW1vdXM+4oCZKQ0KPiA+ID4gbWFrZVs0\n"
- "XTogKioqIFtmcy9uZnMvbmZzNHN0YXRlLm9dIEVycm9yIDENCj4gPiA+IG1ha2VbM106ICoqKiBb\n"
- "ZnMvbmZzXSBFcnJvciAyDQo+ID4gPiANCj4gPiA+IA0KPiA+ID4gRkMtNjQgPGJ1aWxkQGJ1aWxk\n"
- "LW1rMjp+PiBnY2MgLS12ZXJzaW9uDQo+ID4gPiBnY2MgKEdDQykgNC40LjQgMjAxMDA1MDMgKFJl\n"
- "ZCBIYXQgNC40LjQtMikNCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiBBIHNpbWlsYXIgYnVnIHdhcyBm\n"
- "aXhlZCBieQ0KPiA+ID4gZTA3MTRlYzRmOWVmZTdiODY4MjhiMGRjYzA3N2ZkOGY1ZDhlNWU5MQ0K\n"
- "PiA+ID4gYnV0DQo+ID4gPiBJIGRvbid0IHRoaW5rIHRoZSBzYW1lIGFwcHJvYWNoIGNhbiB3b3Jr\n"
- "IGhlcmUuDQo+ID4gDQo+ID4gDQo+ID4gSSBkb24ndCBoYXZlIGFueSBzZXR1cHMgd2l0aCBnY2Mg\n"
- "NC40LjQuIFdoYXQgaXMgaXQgZXhwZWN0aW5nIGhlcmU/DQo+ID4gSXMNCj4gPiBpdCBleHBlY3Rp\n"
- "bmcgYW4gZXh0cmEgc2V0IG9mIGJyYWNlcyBkdWUgdG8gdGhlIGFub255bW91cyAic3RydWN0Ij8N\n"
- "Cj4gPiANCj4gDQo+IE5vLCB0aGF0IHdvbid0IHdvcmsgKGF0IGxlYXN0IEkgY291bGRuJ3QgZ2V0\n"
- "IGl0IHRvIHdvcmspIGJlY2F1c2UgdGhlIA0KPiBzb2x1dGlvbiBmcm9tIGUwNzE0ZWM0ZjllIGFz\n"
- "c3VtZXMgdGhhdCB0aGUgYW5vbnltb3VzIHN0cnVjdCBpcyB0aGUNCj4gZmlyc3QgDQo+IG9uZSBp\n"
- "biB0aGUgZW52ZWxvcGluZyBzdHJ1Y3QuDQo+IA0KPiBJdCB3b3JrZWQgb25seSBpZiBJICh0aGlz\n"
- "IGlzIGEgc21hbGwgQyBwcm9ncmFtIHdpdGggZXF1aXZhbGVudA0KPiBzdHJ1Y3RzKToNCj4gDQo+\n"
- "IHN0cnVjdCBuZnM0X3N0YXRlaWRfc3RydWN0IHsNCj4gICAgICAgICAgdW5pb24gew0KPiAgICAg\n"
- "ICAgICAgICAgICAgIC8vY2hhciBkYXRhWzRdOw0KPiAgICAgICAgICAgICAgICAgIHN0cnVjdCB7\n"
- "DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzZXFpZDsNCj4gICAgICAgICAg\n"
- "ICAgICAgICAgICAgICAgIGNoYXIgb3RoZXJbNl07DQo+ICAgICAgICAgICAgICAgICAgfSBfX2F0\n"
- "dHJpYnV0ZV9fICgocGFja2VkKSk7DQo+IAkJY2hhciBkYXRhWzRdOw0KPiAgICAgICAgICB9Ow0K\n"
- "PiBhbmQgdGhlbg0KPiANCj4gY29uc3QgbmZzNF9zdGF0ZWlkIGludmFsaWRfc3RhdGVpZCA9IHsN\n"
- "Cj4gICAgICAgICAgew0KPiAgICAgICAgICAgICAgICAgICAgey5zZXFpZCA9IDB4ZmZmZmZmZmZV\n"
- "LA0KPiAgICAgICAgICAgICAgICAgICAgLm90aGVyID0geyAwIH0gfSwNCj4gICAgICAgICAgfSwN\n"
- "Cj4gICAgICAgICAgLnR5cGUgPSBORlM0X0lOVkFMSURfU1RBVEVJRF9UWVBFLA0KPiB9Ow0KPiAN\n"
- "Cj4gSWYgSSBrZWVwIGRhdGFbNF0gd2hlcmUgaXQgaXMgbm93IEkgZ2V0IGNvbXBpbGVyIGVycm9y\n"
- "DQo+IA0KPiBhbi5jOjM1OjIwOiBlcnJvcjogZmllbGQgbmFtZSBub3QgaW4gcmVjb3JkIG9yIHVu\n"
- "aW9uIGluaXRpYWxpemVyDQo+ICAgICAgICAgICAgICAgICAgICAgey5zZXFpZCA9IDB4ZmZmZmZm\n"
- "ZmZVLA0KPiAgICAgICAgICAgICAgICAgICAgICBeDQo+IGFuLmM6MzU6MjA6IG5vdGU6IChuZWFy\n"
- "IGluaXRpYWxpemF0aW9uIGZvciANCj4gJ2ludmFsaWRfc3RhdGVpZC48YW5vbnltb3VzPi5kYXRh\n"
- "JykNCj4gYW4uYzozNToyOTogd2FybmluZzogb3ZlcmZsb3cgaW4gaW1wbGljaXQgY29uc3RhbnQg\n"
- "Y29udmVyc2lvbiBbLQ0KPiBXb3ZlcmZsb3ddDQo+ICAgICAgICAgICAgICAgICAgICAgey5zZXFp\n"
- "ZCA9IDB4ZmZmZmZmZmZVLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+\n"
- "fn5+fg0KPiBhbi5jOjM2OjE5OiBlcnJvcjogZmllbGQgbmFtZSBub3QgaW4gcmVjb3JkIG9yIHVu\n"
- "aW9uIGluaXRpYWxpemVyDQo+ICAgICAgICAgICAgICAgICAgICAgLm90aGVyID0geyAwIH0gfSwN\n"
- "Cj4gICAgICAgICAgICAgICAgICAgICBeDQo+IGFuLmM6MzY6MTk6IG5vdGU6IChuZWFyIGluaXRp\n"
- "YWxpemF0aW9uIGZvciANCj4gJ2ludmFsaWRfc3RhdGVpZC48YW5vbnltb3VzPi5kYXRhJykNCj4g\n"
- "YW4uYzozNjoxOTogd2FybmluZzogYnJhY2VzIGFyb3VuZCBzY2FsYXIgaW5pdGlhbGl6ZXINCj4g\n"
- "YW4uYzozNjoxOTogbm90ZTogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIA0KPiAnaW52YWxpZF9z\n"
- "dGF0ZWlkLjxhbm9ueW1vdXM+LmRhdGFbMV0nKQ0KPiANCj4gSSBkb24ndCBrbm93IGlmIHlvdSB3\n"
- "YW50IHRvIGNoYW5nZSBwdWJsaWMgaGVhZGVyIGZpbGUganVzdCB0byBnZXQNCj4gYXJvdW5kIA0K\n"
- "PiB0aGlzIHByb2JsZW0uDQoNClNpZ2guLi4uIE9LLCBob3cgYWJvdXQgc29tZXRoaW5nIGxpa2Ug\n"
- "dGhlIGZvbGxvd2luZyB0aGVuOg0KDQp7IC5kYXRhID0geyAweGZmLCAweGZmLCAweGZmLCAweGZm\n"
- "LCAwIH0sIH0NCg0KLS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRh\n"
- aW5lciwgUHJpbWFyeURhdGENCnRyb25kLm15a2xlYnVzdEBwcmltYXJ5ZGF0YS5jb20NCg==
+ "On Sat, 2017-11-18 at 13:07 -0500, Boris Ostrovsky wrote:\n"
+ "> \n"
+ "> On 11/18/2017 12:39 PM, Trond Myklebust wrote:\n"
+ "> > On Sat, 2017-11-18 at 12:19 -0500, Boris Ostrovsky wrote:\n"
+ "> > > Commit fcd8843c406b46433857ae45e5e9d84b01a7d20b breaks on older\n"
+ "> > > compilers which cannot process initializers for anonymous\n"
+ "> > > structures:\n"
+ "> > > \n"
+ "> > > +const nfs4_stateid invalid_stateid = {\n"
+ "> > > +       {\n"
+ "> > > +               .seqid = cpu_to_be32(0xffffffffU),\n"
+ "> > > +               .other = { 0 },\n"
+ "> > > +       },\n"
+ "> > > +       .type = NFS4_INVALID_STATEID_TYPE,\n"
+ "> > > +};\n"
+ "> > > \n"
+ "> > > \n"
+ "> > > /home/build/linux-linus/fs/nfs/nfs4state.c:74: error: unknown\n"
+ "> > > field\n"
+ "> > > \342\200\230seqid\342\200\231 specified in initializer\n"
+ "> > > /home/build/linux-linus/fs/nfs/nfs4state.c:74: warning: missing\n"
+ "> > > braces\n"
+ "> > > around initializer\n"
+ "> > > /home/build/linux-linus/fs/nfs/nfs4state.c:74: warning: (near\n"
+ "> > > initialization for \342\200\230invalid_stateid.<anonymous>.data\342\200\231)\n"
+ "> > > /home/build/linux-linus/fs/nfs/nfs4state.c:74: warning: overflow\n"
+ "> > > in\n"
+ "> > > implicit constant conversion\n"
+ "> > > /home/build/linux-linus/fs/nfs/nfs4state.c:75: error: unknown\n"
+ "> > > field\n"
+ "> > > \342\200\230other\342\200\231 specified in initializer\n"
+ "> > > /home/build/linux-linus/fs/nfs/nfs4state.c:75: error: extra brace\n"
+ "> > > group\n"
+ "> > > at end of initializer\n"
+ "> > > /home/build/linux-linus/fs/nfs/nfs4state.c:75: error: (near\n"
+ "> > > initialization for \342\200\230invalid_stateid.<anonymous>\342\200\231)\n"
+ "> > > /home/build/linux-linus/fs/nfs/nfs4state.c:75: warning: excess\n"
+ "> > > elements\n"
+ "> > > in union initializer\n"
+ "> > > /home/build/linux-linus/fs/nfs/nfs4state.c:75: warning: (near\n"
+ "> > > initialization for \342\200\230invalid_stateid.<anonymous>\342\200\231)\n"
+ "> > > make[4]: *** [fs/nfs/nfs4state.o] Error 1\n"
+ "> > > make[3]: *** [fs/nfs] Error 2\n"
+ "> > > \n"
+ "> > > \n"
+ "> > > FC-64 <build@build-mk2:~> gcc --version\n"
+ "> > > gcc (GCC) 4.4.4 20100503 (Red Hat 4.4.4-2)\n"
+ "> > > \n"
+ "> > > \n"
+ "> > > A similar bug was fixed by\n"
+ "> > > e0714ec4f9efe7b86828b0dcc077fd8f5d8e5e91\n"
+ "> > > but\n"
+ "> > > I don't think the same approach can work here.\n"
+ "> > \n"
+ "> > \n"
+ "> > I don't have any setups with gcc 4.4.4. What is it expecting here?\n"
+ "> > Is\n"
+ "> > it expecting an extra set of braces due to the anonymous \"struct\"?\n"
+ "> > \n"
+ "> \n"
+ "> No, that won't work (at least I couldn't get it to work) because the \n"
+ "> solution from e0714ec4f9e assumes that the anonymous struct is the\n"
+ "> first \n"
+ "> one in the enveloping struct.\n"
+ "> \n"
+ "> It worked only if I (this is a small C program with equivalent\n"
+ "> structs):\n"
+ "> \n"
+ "> struct nfs4_stateid_struct {\n"
+ ">          union {\n"
+ ">                  //char data[4];\n"
+ ">                  struct {\n"
+ ">                          unsigned seqid;\n"
+ ">                          char other[6];\n"
+ ">                  } __attribute__ ((packed));\n"
+ "> \t\tchar data[4];\n"
+ ">          };\n"
+ "> and then\n"
+ "> \n"
+ "> const nfs4_stateid invalid_stateid = {\n"
+ ">          {\n"
+ ">                    {.seqid = 0xffffffffU,\n"
+ ">                    .other = { 0 } },\n"
+ ">          },\n"
+ ">          .type = NFS4_INVALID_STATEID_TYPE,\n"
+ "> };\n"
+ "> \n"
+ "> If I keep data[4] where it is now I get compiler error\n"
+ "> \n"
+ "> an.c:35:20: error: field name not in record or union initializer\n"
+ ">                     {.seqid = 0xffffffffU,\n"
+ ">                      ^\n"
+ "> an.c:35:20: note: (near initialization for \n"
+ "> 'invalid_stateid.<anonymous>.data')\n"
+ "> an.c:35:29: warning: overflow in implicit constant conversion [-\n"
+ "> Woverflow]\n"
+ ">                     {.seqid = 0xffffffffU,\n"
+ ">                               ^~~~~~~~~~~\n"
+ "> an.c:36:19: error: field name not in record or union initializer\n"
+ ">                     .other = { 0 } },\n"
+ ">                     ^\n"
+ "> an.c:36:19: note: (near initialization for \n"
+ "> 'invalid_stateid.<anonymous>.data')\n"
+ "> an.c:36:19: warning: braces around scalar initializer\n"
+ "> an.c:36:19: note: (near initialization for \n"
+ "> 'invalid_stateid.<anonymous>.data[1]')\n"
+ "> \n"
+ "> I don't know if you want to change public header file just to get\n"
+ "> around \n"
+ "> this problem.\n"
+ "\n"
+ "Sigh.... OK, how about something like the following then:\n"
+ "\n"
+ "{ .data = { 0xff, 0xff, 0xff, 0xff, 0 }, }\n"
+ "\n"
+ "-- \n"
+ "Trond Myklebust\n"
+ "Linux NFS client maintainer, PrimaryData\n"
+ trond.myklebust@primarydata.com
 
-9a0ea470de1629d2127392c3defdb4f49b31dee12f5fabdfca9d63e4e1912cad
+f19ccf544059ac5a049ff8c315417b1b972ddaa9925a996053514997d2a53a97

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.