sb->s_flags |= MS_POSIXACL;
#endif
sbi->ll_flags |= LL_SBI_ACL;
- } else if (sbi->ll_flags & LL_SBI_ACL) {
+ } else {
LCONSOLE_INFO("client wants to enable acl, but mdt not!\n");
+#ifdef MS_POSIXACL
+ sb->s_flags &= ~MS_POSIXACL;
+#endif
sbi->ll_flags &= ~LL_SBI_ACL;
}
int ll_ioctl_getfacl(struct inode *inode, struct rmtacl_ioctl_data *ioc)
{
+ struct ll_sb_info *sbi = ll_i2sbi(inode);
struct ptlrpc_request *req = NULL;
struct mdt_body *body;
char *cmd, *buf;
int rc, buflen;
ENTRY;
+ if (!(sbi->ll_flags & LL_SBI_ACL) ||
+ !(sbi->ll_flags & LL_SBI_RMT_CLIENT))
+ RETURN(-EOPNOTSUPP);
+
LASSERT(ioc->cmd && ioc->cmd_len && ioc->res && ioc->res_len);
OBD_ALLOC(cmd, ioc->cmd_len);
int ll_ioctl_setfacl(struct inode *inode, struct rmtacl_ioctl_data *ioc)
{
+ struct ll_sb_info *sbi = ll_i2sbi(inode);
struct ptlrpc_request *req = NULL;
char *cmd, *buf;
struct obd_capa *oc;
int buflen, rc;
ENTRY;
+ if (!(sbi->ll_flags & LL_SBI_ACL) ||
+ !(sbi->ll_flags & LL_SBI_RMT_CLIENT))
+ RETURN(-EOPNOTSUPP);
+
LASSERT(ioc->cmd && ioc->cmd_len && ioc->res && ioc->res_len);
OBD_ALLOC(cmd, ioc->cmd_len);