This is now used to issue a delayed allocation flush before reporting
quota, which allows the used space quota report to match reality.
Signed-off-by: Nathan Scott <nathans@sgi.com>
                        if (!sb->s_qcop->get_xquota)
                                return -ENOSYS;
                        break;
+               case Q_XQUOTASYNC:
+                       if (!sb->s_qcop->quota_sync)
+                               return -ENOSYS;
+                       break;
                default:
                        return -EINVAL;
        }
                     (type == XQM_GRPQUOTA && !in_egroup_p(id))) &&
                     !capable(CAP_SYS_ADMIN))
                        return -EPERM;
-       } else if (cmd != Q_XGETQSTAT) {
+       } else if (cmd != Q_XGETQSTAT && cmd != Q_XQUOTASYNC) {
                if (!capable(CAP_SYS_ADMIN))
                        return -EPERM;
        }
                                return -EFAULT;
                        return 0;
                }
+               case Q_XQUOTASYNC:
+                       return sb->s_qcop->quota_sync(sb, type);
                /* We never reach here unless validity check is broken */
                default:
                        BUG();
 
 #define Q_XSETQLIM     XQM_CMD(4)      /* set disk limits */
 #define Q_XGETQSTAT    XQM_CMD(5)      /* get quota subsystem status */
 #define Q_XQUOTARM     XQM_CMD(6)      /* free disk space used by dquots */
+#define Q_XQUOTASYNC   XQM_CMD(7)      /* delalloc flush, updates dquots */
 
 /*
  * fs_disk_quota structure: