On Tue, Feb 23, 2010 at 3:38 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote: >> The plan I was thinking of was to pass a flag indicating if it's a >> directory to fsync_fname() and open it RD_ONLY if it's a directory and >> RDRW if it's a file. Then ignore any error returns (or at least EBADF >> and EINVAL) iff the flag indicating it was a directory was true. > > Works for me, but let's first try just ignoring EBADF, which is the only > value we saw in the recent buildfarm failures. If we got past the fd<0 > test then EBADF could only indicate a rdonly failure, whereas it's less > clear what EINVAL might cover. So I'm thinking of something like this. Ignore ESDIR when opening a directory (and return immediately) and ignore EBADF when trying to fsync a directory. -- greg
Attachment:
create-database-fsync-dirs-context.diff
Description: Text Data