Mercurial > dovecot > core-2.2
view src/lib/fdatasync-path.c @ 19552:0f22db71df7a
global: freshen copyright
git ls-files | xargs perl -p -i -e 's/(\d+)-201[0-5]/$1-2016/g;s/ (201[0-5]) Dovecot/ $1-2016 Dovecot/'
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Wed, 13 Jan 2016 12:24:03 +0200 |
parents | 3009a1a6f6d5 |
children | 2e2563132d5f |
line wrap: on
line source
/* Copyright (c) 2008-2016 Dovecot authors, see the included COPYING file */ #include "lib.h" #include "fdatasync-path.h" #include <fcntl.h> #include <unistd.h> int fdatasync_path(const char *path) { int fd, ret = 0; /* Directories need to be opened as read-only. fsync() doesn't appear to care about it. */ fd = open(path, O_RDONLY); if (fd == -1) return -1; if (fdatasync(fd) < 0) { /* Some OSes/FSes don't allow fsyncing directores. Silently ignore the problem. */ if (errno == EBADF) { /* e.g. NetBSD */ } else if (errno == EINVAL) { /* e.g. Linux+CIFS */ } else { ret = -1; } } i_close_fd(&fd); return ret; }