Re: fsync, ext2 on Linux

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: fsync, ext2 on Linux
Date: 2004-10-31 15:15:01
Message-ID: 27660.1099235701@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Heikki Linnakangas <hlinnaka(at)iki(dot)fi> writes:
> The Linux [ext2] fsync man page says:
> "It does not necessarily ensure that the entry in the directory
> containing the file has also reached disk. For that an explicit fsync on
> the file descriptor of the directory is also needed."

This seems so broken as to defy belief. A process creating a file
doesn't normally *have* a file descriptor for the parent directory,
and I don't think the concept of an FD for a directory is even
portable (opendir() certainly doesn't return an FD). One might also
ask if we are expected to fsync everything up to the root in order
to be sure that the file remains accessible, and how exactly we should
do that on directories we don't have write access for.

In general we expect the filesystem to take care of its own metadata.
Run ext3 in journaling mode, or something like that.

(It occurs to me that the admin guide really ought to have a few words
about recommended and non-recommended filesystems ...)

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2004-10-31 15:31:24 Re: fsync, ext2 on Linux
Previous Message Tom Lane 2004-10-31 15:02:01 Re: Version defines