The 1.8 client sync write doesn't carry OBD_BRW_SYNC flag, to
interoperate with 1.8 client, the checking for sync write on OST
should be amended accordingly.
Signed-off-by: Niu Yawei <yawei.niu@intel.com>
Change-Id: I4179c4878d295dae625f5631b6b02f3b4dd32cb6
Reviewed-on: http://review.whamcloud.com/5928
Reviewed-by: Johann Lombardi <johann.lombardi@intel.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
/* ignore quota for the whole request if any page is from
* client cache or written by root.
*
+ * XXX once we drop the 1.8 client support, the checking
+ * for whether page is from cache can be simplified as:
+ * !(lnb[i].flags & OBD_BRW_SYNC)
+ *
* XXX we could handle this on per-lnb basis as done by
* grant. */
if ((lnb[i].flags & OBD_BRW_NOQUOTA) ||
- !(lnb[i].flags & OBD_BRW_SYNC))
+ (lnb[i].flags & (OBD_BRW_FROM_GRANT | OBD_BRW_SYNC)) ==
+ OBD_BRW_FROM_GRANT)
ignore_quota = true;
}
/* ignore quota for the whole request if any page is from
* client cache or written by root.
*
+ * XXX once we drop the 1.8 client support, the checking
+ * for whether page is from cache can be simplified as:
+ * !(lnb[i].flags & OBD_BRW_SYNC)
+ *
* XXX we could handle this on per-lnb basis as done by
* grant. */
if ((lnb[i].flags & OBD_BRW_NOQUOTA) ||
- !(lnb[i].flags & OBD_BRW_SYNC))
+ (lnb[i].flags & (OBD_BRW_FROM_GRANT | OBD_BRW_SYNC)) ==
+ OBD_BRW_FROM_GRANT)
ignore_quota = true;
if (size == 0) {
/* first valid lnb */