In Linux kernel code (up to 3.1.*) I saw such structure definition:
struct skb_frag_struct {
struct page *page;
/* ... */
In newer kernel versions this has evolved into:
struct skb_frag_struct {
struct {
struct page *p;
} page;
/* ... */
For what purpose could this wrapping be done in this particular case? And why it may be needed in general case?