Whamcloud - gitweb
LU-9929 nodemap: add default ACL unmapping handling
[fs/lustre-release.git] / lustre / ptlrpc / nodemap_handler.c
index 782c992..ba5f4a7 100644 (file)
@@ -701,17 +701,19 @@ ssize_t nodemap_map_acl(struct lu_nodemap *nodemap, void *buf, size_t size,
        posix_acl_xattr_entry   *end;
        int                      count;
 
+       ENTRY;
+
        if (!nodemap_active)
-               return size;
+               RETURN(size);
 
        if (unlikely(nodemap == NULL))
-               return size;
+               RETURN(size);
 
        count = posix_acl_xattr_count(size);
        if (count < 0)
-               return -EINVAL;
+               RETURN(-EINVAL);
        if (count == 0)
-               return 0;
+               RETURN(0);
 
        for (end = entry + count; entry != end; entry++) {
                __u16 tag = le16_to_cpu(entry->e_tag);
@@ -741,7 +743,7 @@ ssize_t nodemap_map_acl(struct lu_nodemap *nodemap, void *buf, size_t size,
                new_entry++;
        }
 
-       return (void *)new_entry - (void *)header;
+       RETURN((void *)new_entry - (void *)header);
 }
 EXPORT_SYMBOL(nodemap_map_acl);
 
@@ -828,7 +830,7 @@ EXPORT_SYMBOL(nodemap_add_range);
 /**
  * delete a range
  * \param      name            nodemap name
- * \param      range_str       string containing range
+ * \param      nid             nid range
  * \retval     0 on success
  *
  * Delete range from global range tree, and remove it
@@ -856,6 +858,10 @@ int nodemap_del_range(const char *name, const lnet_nid_t nid[2])
                up_write(&active_config->nmc_range_tree_lock);
                GOTO(out_putref, rc = -EINVAL);
        }
+       if (range->rn_nodemap != nodemap) {
+               up_write(&active_config->nmc_range_tree_lock);
+               GOTO(out_putref, rc = -EINVAL);
+       }
        rc = nodemap_idx_range_del(range);
        range_delete(&active_config->nmc_range_tree, range);
        nm_member_reclassify_nodemap(nodemap);