@@ -177,6 +177,27 @@ struct xfs_dqstats
177
177
uint16_t qs_iwarnlimit ; /* limit for num warnings */
178
178
};
179
179
180
+ struct fs_qfilestatv {
181
+ uint64_t qfs_ino , qfs_nblks ;
182
+ uint32_t qfs_nextents , qfs_pad ;
183
+ };
184
+
185
+ struct fs_quota_statv {
186
+ int8_t qs_version ;
187
+ uint8_t qs_pad1 ;
188
+ uint16_t qs_flags ;
189
+ uint32_t qs_incoredqs ;
190
+ struct fs_qfilestatv qs_uquota ;
191
+ struct fs_qfilestatv qs_gquota ;
192
+ struct fs_qfilestatv qs_pquota ;
193
+ int32_t qs_btimelimit ;
194
+ int32_t qs_itimelimit ;
195
+ int32_t qs_rtbtimelimit ;
196
+ uint16_t qs_bwarnlimit ;
197
+ uint16_t qs_iwarnlimit ;
198
+ uint64_t qs_pad2 [8 ];
199
+ };
200
+
180
201
static int
181
202
decode_cmd_data (struct tcb * tcp , uint32_t cmd , unsigned long data )
182
203
{
@@ -394,6 +415,39 @@ decode_cmd_data(struct tcb *tcp, uint32_t cmd, unsigned long data)
394
415
tprintf ("iwarnlimit=%u}" , dq .qs_iwarnlimit );
395
416
break ;
396
417
}
418
+ case Q_XGETQSTATV :
419
+ {
420
+ struct fs_quota_statv dq ;
421
+
422
+ if (entering (tcp ))
423
+ return 0 ;
424
+ if (umove_or_printaddr (tcp , data , & dq ))
425
+ break ;
426
+ tprintf ("{version=%d, " , dq .qs_version );
427
+ if (abbrev (tcp )) {
428
+ tprints ("...}" );
429
+ break ;
430
+ }
431
+ tprints ("flags=" );
432
+ printflags (xfs_quota_flags ,
433
+ dq .qs_flags , "XFS_QUOTA_???" );
434
+ tprintf (", incoredqs=%u, " , dq .qs_incoredqs );
435
+ tprintf ("u_ino=%" PRIu64 ", " , dq .qs_uquota .qfs_ino );
436
+ tprintf ("u_nblks=%" PRIu64 ", " , dq .qs_uquota .qfs_nblks );
437
+ tprintf ("u_nextents=%u, " , dq .qs_uquota .qfs_nextents );
438
+ tprintf ("g_ino=%" PRIu64 ", " , dq .qs_gquota .qfs_ino );
439
+ tprintf ("g_nblks=%" PRIu64 ", " , dq .qs_gquota .qfs_nblks );
440
+ tprintf ("g_nextents=%u, " , dq .qs_gquota .qfs_nextents );
441
+ tprintf ("p_ino=%" PRIu64 ", " , dq .qs_pquota .qfs_ino );
442
+ tprintf ("p_nblks=%" PRIu64 ", " , dq .qs_pquota .qfs_nblks );
443
+ tprintf ("p_nextents=%u, " , dq .qs_pquota .qfs_nextents );
444
+ tprintf ("btimelimit=%d, " , dq .qs_btimelimit );
445
+ tprintf ("itimelimit=%d, " , dq .qs_itimelimit );
446
+ tprintf ("rtbtimelimit=%d, " , dq .qs_rtbtimelimit );
447
+ tprintf ("bwarnlimit=%u, " , dq .qs_bwarnlimit );
448
+ tprintf ("iwarnlimit=%u}" , dq .qs_iwarnlimit );
449
+ break ;
450
+ }
397
451
case Q_XQUOTAON :
398
452
case Q_XQUOTAOFF :
399
453
{
0 commit comments