| 258 | } |
| 259 | |
| 260 | int |
| 261 | quota_maxid(struct quotafile *qf) |
| 262 | { |
| 263 | struct stat st; |
| 264 | int maxid; |
| 265 | |
| 266 | if (stat(qf->qfname, &st) < 0) |
| 267 | return (0); |
| 268 | switch (qf->wordsize) { |
| 269 | case 32: |
| 270 | maxid = st.st_size / sizeof(struct dqblk32) - 1; |
| 271 | break; |
| 272 | case 64: |
| 273 | maxid = st.st_size / sizeof(struct dqblk64) - 2; |
| 274 | break; |
| 275 | default: |
| 276 | maxid = 0; |
| 277 | break; |
| 278 | } |
| 279 | return (maxid > 0 ? maxid : 0); |
| 280 | } |
| 281 | |
| 282 | static int |
| 283 | quota_read32(struct quotafile *qf, struct dqblk *dqb, int id) |