Re: funlink() for fun!

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Greywolf
Date: Thursday, July 10, 2003 - 2:52 pm

Thus spake Greg A. Woods ("GAW> ") sometime Today...

GAW> > Um, slightly off-topic, but wouldn't funlink() be somewhat disastrous in
GAW> > practice?
GAW>
GAW> No more than unlink(), provided that the link count was only one;

Well, yes, there is always that restriction, but that wasn't stated.

GAW> alternately the pathname could be cached in the kernel.  ;-)

I don't get that at all, sorry.   What good would that do for a file that
had (N>1) links to it?  If the (st_nlink == 1) restriction is not
enforced, funlink() would be tantamount to clri...

Gah!  You know what?  [I'm so chagrined -- this took me several passes.]
funlink() would STILL be tantamount to clri, and it would require the same
procedure (fsck) from which to recover, unless the kernel DID cache the
paths of every open (I know it caches vnodes, but pathames?) until (last)
close or until unlink.

GAW> > That would require a file-
GAW> > system cleaner process or a routine that knew instantly how to match inode
GAW> > numbers to pathnames
GAW>
GAW> Why "instantly"?  funlink() could block until it found the directory
GAW> entry and confirmed that the link count was still one.  :-)

<quiz>
[ ] You expect me to wait that long for funlink() to return from that
    procedure?
    [ ]	...on a 1GB filesystem?
    [ ] ...with a high density of inodes?
    [ ] ...on a system with a slow CPU?
</quiz>

I'm guessing the smileys all over the place are conveying your intent that
funlink() would not work at all, practically speaking...

GAW> >  You will note that there is no converse
GAW> > routine, since while name -> ino-dev is unique for each ino-dev, the
GAW> > reverse is untrue -- consider /foo/bar/.. and /foo, for example...").
GAW>
GAW> Yes, that's strictly true, but your example is slightly wrong.  :-)

I see that's either because they're directories or, more likely what you're
hinting at, because /foo/bar may be on a different dev than /foo.

I should say, then, "consider /foo/bar/.. and /foo on the same partition,
for example...".

				--*greywolf;
--
NetBSD: Professional power!
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: fsync performance hit on 1.6.1, Daniel Brewer, (Mon Jul 7, 12:45 am)
Re: fsync performance hit on 1.6.1, der Mouse, (Mon Jul 7, 12:53 am)
Re: fsync performance hit on 1.6.1, Chuck Silvers, (Mon Jul 7, 9:33 am)
Re: fsync performance hit on 1.6.1, Chuck Silvers, (Mon Jul 7, 9:39 am)
Re: fsync performance hit on 1.6.1, Greg A. Woods, (Mon Jul 7, 11:45 am)
Re: fsync performance hit on 1.6.1, David Laight, (Mon Jul 7, 1:58 pm)
Re: fsync performance hit on 1.6.1, Jochen Kunz, (Tue Jul 8, 1:16 am)
Re: fsync performance hit on 1.6.1, David Laight, (Tue Jul 8, 5:17 am)
Re: fsync performance hit on 1.6.1, Matthias Buelow, (Tue Jul 8, 11:18 am)
Re: fsync performance hit on 1.6.1, Greg A. Woods, (Tue Jul 8, 1:57 pm)
Re: fsync performance hit on 1.6.1, Matthias Buelow, (Tue Jul 8, 3:32 pm)
Re: fsync performance hit on 1.6.1, Greg A. Woods, (Tue Jul 8, 6:59 pm)
Re: fsync performance hit on 1.6.1, Matthias Buelow, (Tue Jul 8, 7:54 pm)
Re: fsync performance hit on 1.6.1, der Mouse, (Tue Jul 8, 8:09 pm)
Re: fsync performance hit on 1.6.1, Greg A. Woods, (Tue Jul 8, 8:44 pm)
Re: fsync performance hit on 1.6.1, Greg A. Woods, (Wed Jul 9, 12:01 am)
Re: fsync performance hit on 1.6.1, der Mouse, (Wed Jul 9, 12:11 am)
Re: fsync performance hit on 1.6.1, Christoph Hellwig, (Wed Jul 9, 1:04 am)
Re: fsync performance hit on 1.6.1, Christoph Hellwig, (Wed Jul 9, 1:07 am)
Re: fsync performance hit on 1.6.1, Greg A. Woods, (Wed Jul 9, 1:36 am)
Re: fsync performance hit on 1.6.1, Greg A. Woods, (Wed Jul 9, 9:26 am)
Re: fsync performance hit on 1.6.1, Christoph Hellwig, (Wed Jul 9, 9:43 am)
Re: fsync performance hit on 1.6.1, Matt Thomas, (Wed Jul 9, 11:13 am)
POSIX shm_open() vs. mmap(MAP_ANON|MAP_SHARED)...., Greg A. Woods, (Wed Jul 9, 11:17 am)
Re: fsync performance hit on 1.6.1, Matthias Buelow, (Wed Jul 9, 11:34 am)
Re: fsync performance hit on 1.6.1, Matthias Buelow, (Wed Jul 9, 11:43 am)
Re: fsync performance hit on 1.6.1, der Mouse, (Wed Jul 9, 12:21 pm)
Re: fsync performance hit on 1.6.1, Greg A. Woods, (Wed Jul 9, 12:22 pm)
Re: fsync performance hit on 1.6.1, Greg A. Woods, (Wed Jul 9, 12:56 pm)
Re: fsync performance hit on 1.6.1, der Mouse, (Wed Jul 9, 1:05 pm)
Re: fsync performance hit on 1.6.1, Greg A. Woods, (Wed Jul 9, 1:40 pm)
Re: fsync performance hit on 1.6.1, der Mouse, (Wed Jul 9, 1:50 pm)
Re: fsync performance hit on 1.6.1, Greywolf, (Wed Jul 9, 2:06 pm)
Re: fsync performance hit on 1.6.1, Christoph Hellwig, (Wed Jul 9, 5:14 pm)
Re: fsync performance hit on 1.6.1, Matthias Buelow, (Wed Jul 9, 6:32 pm)
Re: fsync performance hit on 1.6.1, Kamal R Prasad, (Wed Jul 9, 11:11 pm)
Re: fsync performance hit on 1.6.1, Greg A. Woods, (Thu Jul 10, 12:06 am)
Re: fsync performance hit on 1.6.1, Kamal R Prasad, (Thu Jul 10, 12:23 am)
Re: funlink() for fun!, Greg A. Woods, (Thu Jul 10, 9:35 am)
Re: POSIX shm_open() vs. mmap(MAP_ANON|MAP_SHARED)...., Greg A. Woods, (Thu Jul 10, 9:37 am)
Re: fsync performance hit on 1.6.1, Greg A. Woods, (Thu Jul 10, 9:40 am)
Re: funlink() for fun!, Greywolf, (Thu Jul 10, 2:52 pm)
Re: fsync performance hit on 1.6.1, Matthew Mondor, (Thu Jul 10, 3:08 pm)
Re: funlink() for fun!, Greg A. Woods, (Thu Jul 10, 3:34 pm)
Re: funlink() for fun!, Greywolf, (Thu Jul 10, 3:51 pm)
Re: funlink() for fun!, Greg A. Woods, (Thu Jul 10, 4:56 pm)
Re: funlink() for fun!, Greywolf, (Thu Jul 10, 5:31 pm)
Re: funlink() for fun!, der Mouse, (Thu Jul 10, 8:41 pm)
Re: funlink() for fun!, Greg A. Woods, (Thu Jul 10, 11:38 pm)
Re: funlink() for fun!, der Mouse, (Thu Jul 10, 11:43 pm)
Re: funlink() for fun!, Greg A. Woods, (Fri Jul 11, 12:31 am)
Re: funlink() for fun!, der Mouse, (Fri Jul 11, 1:12 am)
Re: funlink() for fun!, David Laight, (Fri Jul 11, 2:36 am)
Re: funlink() for fun!, Roland Dowdeswell, (Fri Jul 11, 8:03 am)
Re: funlink() for fun!, Greg A. Woods, (Fri Jul 11, 10:47 am)
Re: funlink() for fun!, Greg A. Woods, (Fri Jul 11, 10:58 am)
Re: funlink() for fun!, Greywolf, (Fri Jul 11, 1:42 pm)
Re: funlink() for fun!, der Mouse, (Fri Jul 11, 1:48 pm)
Re: funlink() for fun!, Greg A. Woods, (Fri Jul 11, 4:02 pm)
Re: funlink() for fun!, Greywolf, (Fri Jul 11, 4:20 pm)
Re: funlink() for fun!, Matthias Buelow, (Fri Jul 11, 6:38 pm)
Re: funlink() for fun!, Matthias Buelow, (Fri Jul 11, 6:53 pm)
Re: funlink() for fun!, Greywolf, (Fri Jul 11, 7:20 pm)
Re: funlink() for fun!, Greg A. Woods, (Sat Jul 12, 1:11 am)
Re: funlink() for fun!, Greg A. Woods, (Sat Jul 12, 1:47 am)
Re: funlink() for fun!, Greg A. Woods, (Sat Jul 12, 1:54 am)
Re: funlink() for fun!, der Mouse, (Sat Jul 12, 1:57 am)
Re: funlink() for fun!, Greywolf, (Sat Jul 12, 2:11 am)
Re: funlink() for fun!, joerg, (Sat Jul 12, 4:07 am)
Re: funlink() for fun!, Ignatios Souvatzis, (Sat Jul 12, 6:18 am)
Re: funlink() for fun!, Greg A. Woods, (Sat Jul 12, 10:48 am)
Re: funlink() for fun!, Greg A. Woods, (Sat Jul 12, 10:57 am)
Re: funlink() for fun!, Matthias Buelow, (Sun Jul 13, 1:25 pm)
Re: funlink() for fun!, Greg A. Woods, (Sun Jul 13, 3:58 pm)
Re: funlink() for fun!, Matthias Buelow, (Mon Jul 14, 7:19 am)
Re: funlink() for fun!, Greg A. Woods, (Mon Jul 14, 9:08 am)
Re: funlink() for fun!, Greywolf, (Mon Jul 14, 9:24 am)
Re: funlink() for fun!, Matthias Buelow, (Mon Jul 14, 9:34 am)
Re: funlink() for fun!, Greg A. Woods, (Mon Jul 14, 10:44 am)
Re: funlink() for fun!, Ben Harris, (Mon Jul 14, 11:06 am)
Re: funlink() for fun!, Greywolf, (Mon Jul 14, 11:20 am)
Re: funlink() for fun!, Greg A. Woods, (Mon Jul 14, 11:30 am)
Re: funlink() for fun!, Matthias Buelow, (Mon Jul 14, 12:46 pm)
Re: funlink() for fun!, Matthias Buelow, (Mon Jul 14, 1:51 pm)
Re: funlink() for fun!, Greg A. Woods, (Mon Jul 14, 1:58 pm)
Re: funlink() for fun!, Greg A. Woods, (Mon Jul 14, 2:43 pm)
Re: funlink() for fun!, der Mouse, (Mon Jul 14, 3:00 pm)
Re: funlink() for fun!, Greywolf, (Mon Jul 14, 4:05 pm)
Re: funlink() for fun!, der Mouse, (Mon Jul 14, 4:56 pm)
Re: funlink() for fun!, Greg A. Woods, (Mon Jul 14, 5:07 pm)
Re: funlink() for fun!, der Mouse, (Mon Jul 14, 5:42 pm)
re: funlink() for fun!, matthew green, (Mon Jul 14, 8:55 pm)
re: funlink() for fun!, Bill Studenmund, (Tue Jul 15, 10:31 am)
Re: funlink() for fun!, Bill Studenmund, (Tue Jul 15, 10:34 am)
Re: funlink() for fun!, Bill Studenmund, (Tue Jul 15, 11:47 am)
Re: funlink() for fun!, Bill Studenmund, (Tue Jul 15, 12:00 pm)
Re: funlink() for fun!, ww, (Tue Jul 15, 12:09 pm)
Re: funlink() for fun!, Bill Studenmund, (Tue Jul 15, 12:40 pm)
Re: funlink() for fun!, der Mouse, (Tue Jul 15, 12:49 pm)
Re: funlink() for fun!, Ignatios Souvatzis, (Tue Jul 15, 1:02 pm)
Re: funlink() for fun!, Bill Studenmund, (Tue Jul 15, 1:28 pm)
Re: funlink() for fun!, Greg A. Woods, (Wed Jul 16, 12:05 am)