<div dir="ltr"><div><div>Oh sorry, it's correct indeed. The part with disorder is PRINT_FIELD_U</div><div>invocations in (decode_cmd_data) <case Q_XGETQSTAT> int quota.c. It's my</div><div>mistake to take that as reference in my test. I will re-send a patch</div><div>aiming at that later. </div></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Jul 10, 2018 at 7:40 PM Dmitry V. Levin <<a href="mailto:ldv@altlinux.org" target="_blank">ldv@altlinux.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Mon, Jul 09, 2018 at 12:11:30AM +0800, Zhibin Li wrote:<br>
> ---<br>
> tests/quotactl-xfs.c | 4 ++--<br>
> 1 file changed, 2 insertions(+), 2 deletions(-)<br>
> <br>
> diff --git a/tests/quotactl-xfs.c b/tests/quotactl-xfs.c<br>
> index fab451e2..036b61d2 100644<br>
> --- a/tests/quotactl-xfs.c<br>
> +++ b/tests/quotactl-xfs.c<br>
> @@ -142,14 +142,14 @@ print_xquota_stat(int rc, void *ptr, void *arg)<br>
> # if VERBOSE<br>
> printf(", qs_flags=");<br>
> printflags(xfs_quota_flags, qs->qs_flags, "XFS_QUOTA_???");<br>
> + PRINT_FIELD_U(", ", *qs, qs_incoredqs);<br>
> PRINT_FIELD_U(", qs_uquota={", qs->qs_uquota, qfs_ino);<br>
> PRINT_FIELD_U(", ", qs->qs_uquota, qfs_nblks);<br>
> PRINT_FIELD_U(", ", qs->qs_uquota, qfs_nextents);<br>
> PRINT_FIELD_U("}, qs_gquota={", qs->qs_gquota, qfs_ino);<br>
> PRINT_FIELD_U(", ", qs->qs_gquota, qfs_nblks);<br>
> PRINT_FIELD_U(", ", qs->qs_gquota, qfs_nextents);<br>
> - PRINT_FIELD_U("}, ", *qs, qs_incoredqs);<br>
> - PRINT_FIELD_D(", ", *qs, qs_btimelimit);<br>
> + PRINT_FIELD_D("}, ", *qs, qs_btimelimit);<br>
> PRINT_FIELD_D(", ", *qs, qs_itimelimit);<br>
> PRINT_FIELD_D(", ", *qs, qs_rtbtimelimit);<br>
> PRINT_FIELD_U(", ", *qs, qs_bwarnlimit);<br>
<br>
The original order is correct, you must be confusing struct fs_quota_stat<br>
with struct fs_quota_statv where qs_incoredqs precedes qs_uquota.<br>
<br>
<br>
-- <br>
ldv<br>
</blockquote></div>