[LU-84] Allow building with quota support against kernel devel headers Created: 11/Feb/11  Updated: 04/Apr/11  Resolved: 04/Apr/11

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.1.0
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Ned Bass Assignee: Zhenyu Xu
Resolution: Fixed Votes: 0
Labels: None
Environment:

Chaos 4.4


Rank (Obsolete): 5089

 Description   

The configure script now treats 64-bit quota limits as mandatory. In 1.8, this check continued with limited quota support if the check failed. For CHAOS systems we build Lustre against the kernel development headers, not full kernel source. Therefore the 64-bit quota limits check is guaranteed to fail
for us because the test relies on private kernel headers in linux/fs/quota. Although the RHEL6 and CHAOS kernels contain the 64-bit quota limits patch, it unfortunately does not export any symbols or expose any public headers we can use to detect it in an autoconf test. A possible workaround for this is to add a configure option, say --enable-64bit-quota, that can be used to bypass the test if one is certain that the required kernel support is in place. This would also require a new compatibility header to provide the needed definitions. I will push an implementation of this up to Gerrit for insepction.



 Comments   
Comment by Ned Bass [ 11/Feb/11 ]

See http://review.whamcloud.com/231 (obsolete)

check http://review.whamcloud.com/295

Comment by Andreas Dilger [ 11/Feb/11 ]

How is it possible to build Lustre servers against the development headers instead of the full kernel source? The ldiskfs code depends on access to fs/ext4 in order to be built.

If this is for the client, then the quota headers should not be necessary at all.

Comment by Ned Bass [ 11/Feb/11 ]

We build ldiskfs in the CHAOS kernel and use the --with-ldiskfs-inkernel configure option.

Comment by Christopher Morrone [ 11/Feb/11 ]

Andreas, LLNL has been building ldiskfs as part of the kernel for years. (Not that I am entirely fond of that solution...) With --with-ldiskfsinkernel (or whatever it is), the fs/ext4 kernel source is not necessary.

Comment by Peter Jones [ 14/Feb/11 ]

Bobijam

I suggest that you discuss this issue with Johann when he joins us this week

Regards

Peter

Comment by Zhenyu Xu [ 18/Feb/11 ]

Copy review comment from Johann:

Thanks for the patch Ned.

Actually, the quota patch we pushed upstream through Jan Kara introduces QFMT_VFS_V1 in include/linux/quota.h. This was needed because OCFS2 quota required a special identifier (i.e. QFMT_OCFS2). To detect 64-bit quota support, i think we should just check for QFMT_VFS_V1 in include/linux/quota.h.

The good news is that RHEL6 uses the same upstream patch, so QFMT_VFS_V1 is present in include/linux/quota.h. The only problem is our old version of the RHEL5 patch which needs to be realigned with what was pushed upstream.

We still have a compile problem since the v2_disk_dqinfo & v2_disk_dqheader structs are unfortunately used by fsfilt (that's because lustre creates the quota files on disk by itself, which is really wrong IMO, but that's another topic). Copying those 2 structs to the lustre source as done in this patch is ok as a short-term workaround IMO, until we fix the real problem.

Comment by Ned Bass [ 23/Feb/11 ]

On Fri, Feb 18, 2011 at 02:44:34AM -0800, Johann Lombardi (Code Review) wrote:
> Actually, the quota patch we pushed upstream through Jan Kara introduces
> QFMT_VFS_V1 in include/linux/quota.h. This was needed because OCFS2 quota
> required a special identifier (i.e. QFMT_OCFS2). To detect 64-bit quota
> support, i think we should just check for QFMT_VFS_V1 in
> include/linux/quota.h.

Oops, I missed that somehow.

> The good news is that RHEL6 uses the same upstream patch, so QFMT_VFS_V1 is
> present in include/linux/quota.h. The only problem is our old version of the
> RHEL5 patch which needs to be realigned with what was pushed upstream.

I'll work on an updated patch that performs the old test if we can find
quotaio_v*.h, and otherwise checks for QFMT_VFS_V1 in include/linux/quota.h.

Thanks,
Ned

Comment by Ned Bass [ 03/Mar/11 ]

New version submitted to address Johann's comments:

http://review.whamcloud.com/295

Comment by Build Master (Inactive) [ 03/Mar/11 ]

Integrated in reviews-centos5 #380
LU-84 Allow building against kernel devel headers with quotas

Ned Bass : f68ef518bc5022589abef729b0f7984c963c5607
Files :

  • lustre/lvfs/fsfilt_ext3.c
  • lustre/include/quotaio_v2.h
  • lustre/include/Makefile.am
  • lustre/autoconf/lustre-core.m4
Comment by Build Master (Inactive) [ 11/Mar/11 ]

Integrated in reviews-rhel6 #12
LU-84 Allow building against kernel devel headers with quotas

Brian J. Murrell : 86cc82b3abf5269be858e33e91eb06ee49324d41
Files :

  • lustre/lvfs/fsfilt_ext3.c
  • lustre/include/Makefile.am
  • lustre/include/quotaio_v2.h
  • lustre/autoconf/lustre-core.m4
Comment by Build Master (Inactive) [ 16/Mar/11 ]

Integrated in reviews-centos5 #475
LU-84 Allow building against kernel devel headers with quotas

Brian J. Murrell : 9c511c3b609fbe376bae3051e32de9170497081e
Files :

  • lustre/include/quotaio_v2.h
  • lustre/include/Makefile.am
  • lustre/lvfs/fsfilt_ext3.c
  • lustre/autoconf/lustre-core.m4
Comment by Build Master (Inactive) [ 16/Mar/11 ]

Integrated in reviews-rhel6 #35
LU-84 Allow building against kernel devel headers with quotas

Brian J. Murrell : 9c511c3b609fbe376bae3051e32de9170497081e
Files :

  • lustre/include/Makefile.am
  • lustre/autoconf/lustre-core.m4
  • lustre/lvfs/fsfilt_ext3.c
  • lustre/include/quotaio_v2.h
Comment by Build Master (Inactive) [ 16/Mar/11 ]

Integrated in reviews-centos5 #485
LU-84 Allow building against kernel devel headers with quotas

Brian J. Murrell : 9c511c3b609fbe376bae3051e32de9170497081e
Files :

  • lustre/lvfs/fsfilt_ext3.c
  • lustre/include/quotaio_v2.h
  • lustre/include/Makefile.am
  • lustre/autoconf/lustre-core.m4
Comment by Build Master (Inactive) [ 18/Mar/11 ]

Integrated in reviews-rhel6 #41
LU-84 Allow building against kernel devel headers with quotas

Bobi Jam : 2e42217fb7f3501847ce759a3b33ad62d6bb3918
Files :

  • lustre/lvfs/fsfilt_ext3.c
  • lustre/autoconf/lustre-core.m4
  • lustre/include/Makefile.am
  • lustre/include/quotaio_v2.h
Comment by Build Master (Inactive) [ 18/Mar/11 ]

Integrated in reviews-centos5 #504
LU-84 Allow building against kernel devel headers with quotas

Bobi Jam : 2e42217fb7f3501847ce759a3b33ad62d6bb3918
Files :

  • lustre/include/quotaio_v2.h
  • lustre/autoconf/lustre-core.m4
  • lustre/include/Makefile.am
  • lustre/lvfs/fsfilt_ext3.c
Comment by Build Master (Inactive) [ 18/Mar/11 ]

Integrated in reviews-rhel6 #45
LU-84 Allow building against kernel devel headers with quotas

Bobi Jam : 178ea9b28519a6f6fbe4b350a7f1d8fa2750a055
Files :

  • lustre/lvfs/fsfilt_ext3.c
  • lustre/include/Makefile.am
  • lustre/include/quotaio_v2.h
  • lustre/autoconf/lustre-core.m4
Comment by Build Master (Inactive) [ 18/Mar/11 ]

Integrated in reviews-centos5 #508
LU-84 Allow building against kernel devel headers with quotas

Bobi Jam : 178ea9b28519a6f6fbe4b350a7f1d8fa2750a055
Files :

  • lustre/autoconf/lustre-core.m4
  • lustre/include/Makefile.am
  • lustre/lvfs/fsfilt_ext3.c
  • lustre/include/quotaio_v2.h
Comment by Build Master (Inactive) [ 18/Mar/11 ]

Integrated in reviews-rhel6 #49
LU-84 Allow building against kernel devel headers with quotas

Brian J. Murrell : ac3c214e4e6f3100210b8e457d057590496938b0
Files :

  • lustre/include/quotaio_v2.h
  • lustre/autoconf/lustre-core.m4
  • lustre/lvfs/fsfilt_ext3.c
  • lustre/include/Makefile.am
Comment by Build Master (Inactive) [ 18/Mar/11 ]

Integrated in reviews-centos5 #514
LU-84 Allow building against kernel devel headers with quotas

Brian J. Murrell : ac3c214e4e6f3100210b8e457d057590496938b0
Files :

  • lustre/lvfs/fsfilt_ext3.c
  • lustre/include/Makefile.am
  • lustre/autoconf/lustre-core.m4
  • lustre/include/quotaio_v2.h
Comment by Build Master (Inactive) [ 25/Mar/11 ]

Integrated in reviews-centos5 #573
LU-84 Allow building against kernel devel headers with quotas

Ned Bass : 22d92bda573fb3f071d65c5ffc0a857612cfbbf1
Files :

  • lustre/include/lustre_quota.h
  • lustre/lvfs/fsfilt_ext3.c
  • lustre/autoconf/lustre-core.m4
Comment by Build Master (Inactive) [ 28/Mar/11 ]

Integrated in lustre-master-centos5 #172
LU-84 Allow building against kernel devel headers with quotas

Oleg Drokin : 560ade217a6de8960792b776ea0417e38c41192f
Files :

  • lustre/lvfs/fsfilt_ext3.c
  • lustre/autoconf/lustre-core.m4
  • lustre/include/lustre_quota.h
Comment by Build Master (Inactive) [ 31/Mar/11 ]

Integrated in reviews-rhel6 #57
LU-84 Allow building against kernel devel headers with quotas

Oleg Drokin : 560ade217a6de8960792b776ea0417e38c41192f
Files :

  • lustre/lvfs/fsfilt_ext3.c
  • lustre/include/lustre_quota.h
  • lustre/autoconf/lustre-core.m4
Comment by Build Master (Inactive) [ 31/Mar/11 ]

Integrated in reviews-centos5 #632
LU-84 Allow building against kernel devel headers with quotas

Oleg Drokin : 560ade217a6de8960792b776ea0417e38c41192f
Files :

  • lustre/autoconf/lustre-core.m4
  • lustre/include/lustre_quota.h
  • lustre/lvfs/fsfilt_ext3.c
Comment by Build Master (Inactive) [ 31/Mar/11 ]

Integrated in lustre-reviews » client,ubuntu #48
LU-84 Allow building against kernel devel headers with quotas

Oleg Drokin : 560ade217a6de8960792b776ea0417e38c41192f
Files :

  • lustre/autoconf/lustre-core.m4
  • lustre/lvfs/fsfilt_ext3.c
  • lustre/include/lustre_quota.h
Comment by Build Master (Inactive) [ 31/Mar/11 ]

Integrated in lustre-reviews » client,el5 #48
LU-84 Allow building against kernel devel headers with quotas

Oleg Drokin : 560ade217a6de8960792b776ea0417e38c41192f
Files :

  • lustre/include/lustre_quota.h
  • lustre/lvfs/fsfilt_ext3.c
  • lustre/autoconf/lustre-core.m4
Comment by Build Master (Inactive) [ 31/Mar/11 ]

Integrated in lustre-reviews » server,el5 #48
LU-84 Allow building against kernel devel headers with quotas

Oleg Drokin : 560ade217a6de8960792b776ea0417e38c41192f
Files :

  • lustre/lvfs/fsfilt_ext3.c
  • lustre/include/lustre_quota.h
  • lustre/autoconf/lustre-core.m4
Comment by Build Master (Inactive) [ 31/Mar/11 ]

Integrated in lustre-reviews » client,el6 #48
LU-84 Allow building against kernel devel headers with quotas

Oleg Drokin : 560ade217a6de8960792b776ea0417e38c41192f
Files :

  • lustre/lvfs/fsfilt_ext3.c
  • lustre/include/lustre_quota.h
  • lustre/autoconf/lustre-core.m4
Comment by Build Master (Inactive) [ 31/Mar/11 ]

Integrated in lustre-reviews » server,el6 #48
LU-84 Allow building against kernel devel headers with quotas

Oleg Drokin : 560ade217a6de8960792b776ea0417e38c41192f
Files :

  • lustre/lvfs/fsfilt_ext3.c
  • lustre/include/lustre_quota.h
  • lustre/autoconf/lustre-core.m4
Comment by Peter Jones [ 04/Apr/11 ]

This appears to have been landed to master. Please reopen if any further work is required.

Generated at Sat Feb 10 01:03:36 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.