[Libsysio-commit] HEAD: libsysio/misc fhi.c
Brought to you by:
lward
From: Lee W. <lw...@us...> - 2009-08-17 17:50:01
|
Update of /cvsroot/libsysio/libsysio/misc In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv30248 Modified Files: fhi.c Log Message: Modified to use the new ND_WATNPARENT flag everywhere it's appropriate; Calls that change the name space. Index: fhi.c =================================================================== RCS file: /cvsroot/libsysio/libsysio/misc/fhi.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -w -b -B -p -r1.5 -r1.6 --- fhi.c 4 Aug 2009 06:03:58 -0000 1.5 +++ fhi.c 17 Aug 2009 17:49:40 -0000 1.6 @@ -753,7 +753,7 @@ SYSIO_INTERFACE_NAME(fhi_create)(struct err = fhi_namei(where->fhida_dir, where->fhida_path, - ND_NEGOK, + ND_NEGOK|ND_WANTPARENT, &intent, &pno); if (err) @@ -765,6 +765,7 @@ SYSIO_INTERFACE_NAME(fhi_create)(struct if (PNOP_CLOSE(pno) != 0) abort(); } while (0); + P_PUT(pno->p_parent); P_PUT(pno); } while (0); @@ -792,12 +793,13 @@ SYSIO_INTERFACE_NAME(fhi_unlink)(struct err = fhi_namei(where->fhida_dir, where->fhida_path, - ND_NOFOLLOW, + ND_NOFOLLOW|ND_WANTPARENT, &intent, &pno); if (err) break; err = _sysio_p_unlink(pno); + P_PUT(pno->p_parent); P_PUT(pno); } while (0); @@ -823,30 +825,35 @@ SYSIO_INTERFACE_NAME(fhi_rename)(struct to->fhida_dir, to->fhida_path); old = new = NULL; - INTENT_INIT(&intent, INT_UPDPARENT, NULL, NULL); do { + INTENT_INIT(&intent, INT_UPDPARENT, NULL, NULL); err = fhi_namei(from->fhida_dir, from->fhida_path, - 0, + ND_WANTPARENT, &intent, &old); if (err) break; + INTENT_INIT(&intent, INT_CREAT, NULL, NULL); err = fhi_namei(to->fhida_dir, to->fhida_path, - ND_NEGOK, + ND_NEGOK|ND_WANTPARENT, &intent, &new); if (err) break; err = _sysio_p_rename(old, new); } while (0); - if (new) + if (new) { + P_PUT(new->p_parent); P_PUT(new); - if (old) + } + if (old) { + P_PUT(old->p_parent); P_PUT(old); + } SYSIO_INTERFACE_RETURN(err, err, @@ -880,11 +887,11 @@ SYSIO_INTERFACE_NAME(fhi_link)(struct fi &old); if (err) break; - INTENT_INIT(&intent, INT_UPDPARENT, NULL, NULL); + INTENT_INIT(&intent, INT_CREAT, NULL, NULL); err = fhi_namei(to->fhida_dir, to->fhida_path, - ND_NEGOK, + ND_NEGOK|ND_WANTPARENT, &intent, &new); if (err) @@ -895,8 +902,10 @@ SYSIO_INTERFACE_NAME(fhi_link)(struct fi } err = _sysio_p_link(old, new); } while (0); - if (new) + if (new) { + P_PUT(new->p_parent); P_PUT(new); + } if (old) P_PUT(old); @@ -926,12 +935,13 @@ SYSIO_INTERFACE_NAME(fhi_symlink)(struct err = fhi_namei(from->fhida_dir, from->fhida_path, - ND_NEGOK, + ND_NEGOK|ND_WANTPARENT, &intent, &pno); if (err) break; err = _sysio_p_symlink(to, pno); + P_PUT(pno->p_parent); P_PUT(pno); } while (0); @@ -961,12 +971,13 @@ SYSIO_INTERFACE_NAME(fhi_mkdir)(struct f err = fhi_namei(where->fhida_dir, where->fhida_path, - ND_NEGOK, + ND_NEGOK|ND_WANTPARENT, &intent, &pno); if (err) break; err = _sysio_mkdir(pno, mode); + P_PUT(pno->p_parent); P_PUT(pno); } while (0); @@ -994,12 +1005,13 @@ SYSIO_INTERFACE_NAME(fhi_rmdir)(struct f err = fhi_namei(where->fhida_dir, where->fhida_path, - 0, + ND_WANTPARENT, &intent, &pno); if (err) return err; err = _sysio_p_rmdir(pno); + P_PUT(pno->p_parent); P_PUT(pno); } while (0); |