#include "ofd_internal.h"
-#define OFD_GRANT_CHUNK (2ULL * PTLRPC_MAX_BRW_SIZE)
-#define OFD_GRANT_SHRINK_LIMIT (16ULL * OFD_GRANT_CHUNK)
+#define OFD_GRANT_CHUNK (2ULL * DT_MAX_BRW_SIZE)
+#define OFD_GRANT_CHUNK_EXP(rexp) (2ULL * exp_brw_size((rexp)))
+#define OFD_GRANT_SHRINK_LIMIT(rexp) (16ULL * OFD_GRANT_CHUNK_EXP((rexp)))
static inline obd_size ofd_grant_from_cli(struct obd_export *exp,
struct ofd_device *ofd, obd_size val)
if (exp && ofd_grant_compat(exp, ofd))
/* Try to grant enough space to send a full-size RPC */
- return PTLRPC_MAX_BRW_SIZE <<
+ return exp_brw_size(exp) <<
(ofd->ofd_blockbits - COMPAT_BSIZE_SHIFT);
return OFD_GRANT_CHUNK;
}
long grant_shrink;
LASSERT_SPIN_LOCKED(&ofd->ofd_grant_lock);
-
+ LASSERT(exp);
if (left_space >= ofd->ofd_tot_granted_clients *
- OFD_GRANT_SHRINK_LIMIT)
+ OFD_GRANT_SHRINK_LIMIT(exp))
return;
grant_shrink = ofd_grant_from_cli(exp, ofd, oa->o_grant);
if (!grant)
RETURN(0);
- /* Allow >OFD_GRANT_CHUNK size when clients reconnect due to a
+ /* Allow >OFD_GRANT_CHUNK_EXP size when clients reconnect due to a
* server reboot. */
if ((grant > grant_chunk) && (!obd->obd_recovering))
grant = grant_chunk;
int force = 0; /* can use cached data */
/* don't grant space to client with read-only access */
- if ((exp->exp_connect_flags & OBD_CONNECT_RDONLY) ||
+ if ((exp_connect_flags(exp) & OBD_CONNECT_RDONLY) ||
ofd_grant_prohibit(exp, ofd))
return 0;