1 /*
2 * Copyright (c) 2018-2021 The strace developers.
3 * All rights reserved.
4 *
5 * SPDX-License-Identifier: LGPL-2.1-or-later
6 */
7
8 #include "defs.h"
9
10 #include DEF_MPERS_TYPE(fs_quota_stat_t)
11
12 #include <linux/dqblk_xfs.h>
13
14 #include MPERS_DEFS
15
16 MPERS_PRINTER_DECL(bool, fetch_struct_quotastat, struct tcb *const tcp,
17 const kernel_ulong_t data, void *p)
18 {
19 struct fs_quota_stat *dq = p;
20 fs_quota_stat_t dqstat;
21
22 if (umove_or_printaddr(tcp, data, &dqstat))
23 return false;
24
25 dq->qs_version = dqstat.qs_version;
26 dq->qs_flags = dqstat.qs_flags;
27 dq->qs_pad = dqstat.qs_pad;
28 dq->qs_uquota.qfs_ino = dqstat.qs_uquota.qfs_ino;
29 dq->qs_uquota.qfs_nblks = dqstat.qs_uquota.qfs_nblks;
30 dq->qs_uquota.qfs_nextents = dqstat.qs_uquota.qfs_nextents;
31 dq->qs_gquota.qfs_ino = dqstat.qs_gquota.qfs_ino;
32 dq->qs_gquota.qfs_nblks = dqstat.qs_gquota.qfs_nblks;
33 dq->qs_gquota.qfs_nextents = dqstat.qs_gquota.qfs_nextents;
34 dq->qs_incoredqs = dqstat.qs_incoredqs;
35 dq->qs_btimelimit = dqstat.qs_btimelimit;
36 dq->qs_itimelimit = dqstat.qs_itimelimit;
37 dq->qs_rtbtimelimit = dqstat.qs_rtbtimelimit;
38 dq->qs_bwarnlimit = dqstat.qs_bwarnlimit;
39 dq->qs_iwarnlimit = dqstat.qs_iwarnlimit;
40 return true;
41 }