]> Zhao Yanbai Git Server - minix.git/commitdiff
Add missing put_inode().
authorEvgeniy Ivanov <lolkaantimat@gmail.com>
Fri, 12 Aug 2011 17:40:52 +0000 (21:40 +0400)
committerBen Gras <ben@minix3.org>
Mon, 15 Aug 2011 16:20:06 +0000 (16:20 +0000)
Fixes bug from a9a45cddc.

servers/mfs/link.c

index 07ae0a81ddf55a887ef1ece50b0ec7bfccb68765..c80b19b4fad16de61669973ce2230f029ca2508e 100644 (file)
@@ -321,8 +321,11 @@ PUBLIC int fs_rename()
        old_ip = NULL;
        if (r == EENTERMOUNT) r = EXDEV;        /* should this fail at all? */
        else if (r == ELEAVEMOUNT) r = EINVAL;  /* rename on dot-dot */
-  } else if (old_ip == NULL) {
-       return(err_code);
+  }
+
+  if (old_ip == NULL) {
+       put_inode(old_dirp);
+       return(r);
   }
 
   /* Get new dir inode */ 
@@ -349,10 +352,7 @@ PUBLIC int fs_rename()
        r = EBUSY;
   }
 
-  if(old_ip != NULL)
-         odir = ((old_ip->i_mode & I_TYPE) == I_DIRECTORY); /* TRUE iff dir */
-  else
-         odir = FALSE; 
+  odir = ((old_ip->i_mode & I_TYPE) == I_DIRECTORY); /* TRUE iff dir */
 
   /* If it is ok, check for a variety of possible errors. */
   if(r == OK) {