]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
client: handle fh cleanup in ll_create() failure path
authorSage Weil <sage@inktank.com>
Thu, 7 Mar 2013 23:22:26 +0000 (15:22 -0800)
committerSage Weil <sage@inktank.com>
Fri, 8 Mar 2013 00:09:46 +0000 (16:09 -0800)
Release the fh if we fail the permissions check.

Signed-off-by: Sage Weil <sage@inktank.com>
src/client/Client.cc

index 795d58202006c97befb5bcbee78fc044b6032c59..c57b7131fdcd46c189dbc90e6018bec1ee2a3ea4 100644 (file)
@@ -7465,9 +7465,12 @@ int Client::ll_create(vinodeno_t parent, const char *name, mode_t mode, int flag
 
   if (!created) {
     r = check_permissions(in, flags, uid, gid);
-    if (r < 0)
+    if (r < 0) {
+      if (*fhp) {
+       _release_fh(*fhp);
+      }
       goto out;
-
+    }
     if (*fhp == NULL) {
       r = _open(in, flags, mode, fhp);
       if (r < 0)