Skip to content

quotactl_fd

Partial in Antinomie 0.7.0 · Syscall list

long quotactl_fd(unsigned int fd, unsigned int cmd, qid_t id, void *addr);
Number (x86-64) 443
ABI common
Kernel entry point sys_quotactl_fd

This is the raw kernel prototype from the pinned Linux 6.12.94 schema, not the libc wrapper.

Like quotactl, but selects the filesystem with a file descriptor.

Name Type Meaning
fd (arg0) unsigned int File descriptor to operate on.
cmd (arg1) unsigned int Command or operation selector.
id (arg2) qid_t Identifier whose meaning depends on the call.
addr (arg3) void * Memory or socket address, depending on the call.

On success: a command-specific value, usually 0.

In an Antinomie trace the Return column and the ret filter field show the raw kernel return value. On failure that is the negative errno, for example -2 for ENOENT, not the -1 plus errno that the libc wrapper gives. syscall.errno holds the positive errno and syscall.success is false.

Raw return Name Meaning
-9 EBADF A file descriptor is not valid for this operation.
-22 EINVAL An argument is invalid.

quotactl_fd(2) on man7.org

Coverage mark: Partial. Known subcommands decode the addr structure. An unknown subcommand records a quotactl.unknown_selector “no decoder” gap.

Every call is recorded as an Entry record (the six argument words and the pointees copied at entry) and an Exit record (the return value and the pointees copied at exit).

Argument When How Recorded field key Condition
fd (arg0) Entry raw scalar word args.0, args.fd
cmd (arg1) Entry raw scalar word args.1, args.cmd
id (arg2) Entry raw scalar word args.2, args.id
addr (arg3) Entry the pointer itself, as a raw word args.3, args.raw[3]
↳ pointee Exit u32 arg3.format subcommand Q_GETFMT and result is 0
↳ pointee Entry and exit structure if_dqinfo arg3.info input at entry for Q_SETINFO; output at exit for Q_GETINFO
↳ pointee Entry and exit structure if_dqblk (or if_nextdqblk for Q_GETNEXTQUOTA) arg3.dqblk input at entry for Q_SETQUOTA; output at exit for the get commands
↳ pointee Entry u32 arg3.flags subcommands Q_XQUOTAON, Q_XQUOTAOFF, Q_XQUOTARM
↳ pointee Exit structure fs_quota_stat or fs_quota_statv arg3.stat subcommands Q_XGETQSTAT, Q_XGETQSTATV
↳ pointee Entry and exit structure fs_disk_quota arg3.dquot input at entry for Q_XSETQLIM; output at exit for Q_XGETQUOTA, Q_XGETNEXTQUOTA
  • Selector: the subcommand in cmd. addr roles depend on the subcommand (key arg3.*).
  • Result: ret, syscall.errno, syscall.success, syscall.duration_ns.
  • Argument words: args.fd (arg0), args.cmd (arg1), args.id (arg2), args.addr (arg3); args.0 to args.5 by position.
  • Structure if_nextdqblk behind addr (arg3): args.addr.<member> for dqb_bhardlimit, dqb_bsoftlimit, dqb_btime, dqb_curinodes, dqb_curspace, dqb_id, dqb_ihardlimit, dqb_isoftlimit, dqb_itime, dqb_valid.

See Syscall Trace filter for the full syntax.

  • An unknown subcommand records quotactl.unknown_selector with the “no decoder” status.
  • See the coverage mark above for the code paths that record a gap.

For what the capture statuses mean, see Capture statuses. For what is never recorded, see Known gaps.