| vfs_rmdir#(PATH, USER, OF; ERR, DIRS, FILES, ASYNCED) {if PATH = ε then ERR := EACCESS else let INO = ROOT_INO, DENT = negdentry(PATH.last), PATH = parent(PATH), ISDIR = true, INODE = ?, DEL_INODE = ? in {vfs_walk#(PATH, USER, DIRS, FILES, ASYNCED; INO, ERR); if ERR = ESUCCESS then vfs_may_delete_check#(INO, USER, DIRS, FILES, ASYNCED; INODE, ISDIR, DENT, DEL_INODE, ERR); if ERR = ESUCCESS then afs_check_commit#(DIRS, FILES; ERR; ASYNCED); if ERR = ESUCCESS then {afs_rmdir#(; INODE, DEL_INODE, DENT, ERR, DIRS, FILES; ASYNCED); vfs_put_inode#(DEL_INODE, OF, ASYNCED; ERR, DIRS, FILES)}} } |