X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=ipc%2Fnamespace.c;h=59451c1e214d71f1b771b764d309b20759e19eb6;hb=7431105b143098c3fc0ced8f9974b792f76198d7;hp=4be6581d3b7fa075c3d899e889ce6d09e8fcca86;hpb=bf97293eb878df3792d9de7213bd7b82135aea77;p=~andy%2Flinux diff --git a/ipc/namespace.c b/ipc/namespace.c index 4be6581d3b7..59451c1e214 100644 --- a/ipc/namespace.c +++ b/ipc/namespace.c @@ -81,7 +81,7 @@ void free_ipcs(struct ipc_namespace *ns, struct ipc_ids *ids, int next_id; int total, in_use; - down_write(&ids->rw_mutex); + down_write(&ids->rwsem); in_use = ids->in_use; @@ -89,11 +89,12 @@ void free_ipcs(struct ipc_namespace *ns, struct ipc_ids *ids, perm = idr_find(&ids->ipcs_idr, next_id); if (perm == NULL) continue; - ipc_lock_by_ptr(perm); + rcu_read_lock(); + ipc_lock_object(perm); free(ns, perm); total++; } - up_write(&ids->rw_mutex); + up_write(&ids->rwsem); } static void free_ipc_ns(struct ipc_namespace *ns)