That particular system wasn't using fsync() (or any equivalent) if the -f was given, it sync'd the _filesystem_ upon which the given file lay. (That would, of course, catch the file as well.)
The point was to avoid getting stuck syncing one of the floppy, tape, or network devices when you wanted to flush a particular volume only. sync() was too big of a hammer, and fsync() was too small. (Essentially it did all of the preparatory work for a umount(), but didn't actually do it.) fsync(2) is great for any given application, don't leave home without it, but an fsync(1) is much harder to apply as intended at the system level of abstraction, whereas sync(1) -f can fit beautifully. I only mentioned it as a data point, since there was life before GNU or POSIX. And systems in that day weren't as fast as now, and things like rfs existed where a full-blown sync could indeed be very expensive. (I seem to recall that the database volume had a sync -f hooked to the powerfail interrupt, followed by a full sync that it would finish if it had time before power fully failed.) -- Jim -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Rob Landley Sent: Wednesday, June 17, 2009 2:03 PM To: [email protected] Subject: Re: [PATCH] fsync applet On Thursday 11 June 2009 12:54:47 Cathey, Jim wrote: > For what it's worth, once upon a time I used a system > where sync(1) had a -f <file> option whereupon it > would only sync the volume upon which the file lay. > I don't know if this system was alone in having such > an option, certainly back in the day there was a lot > of cross-pollination. That's not fsync, anyway, so > perhaps a separate applet is more appropriate. > > -- Jim Why do you need a -f option? The normal sync takes no arguments (and ignores any it gets, the gnu version actually explicitly _says_ "sync: ignoring all arguments"). So just add the ability to list files on the command line, iterate through and do an fsync() on those or do a sync() if there aren't any. And then if you like, add fsync as a synonym. :) Rob -- Latency is more important than throughput. It's that simple. - Linus Torvalds _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
