diff options
author | Andrew Bartlett <abartlet@samba.org> | 2009-12-09 11:53:45 +1100 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2009-12-09 11:53:45 +1100 |
commit | bd11ec4faa0517cfbd5829012682e05be17e77d6 (patch) | |
tree | f37ebd7d41b4294fd2f37add5a90381cd734f545 /source3/modules | |
parent | 18530985ec301b117096d7548108db827e4999d1 (diff) | |
parent | 3609c7433d17d78aceb1806340f53f7a2e23c9e8 (diff) | |
download | samba-bd11ec4faa0517cfbd5829012682e05be17e77d6.tar.gz samba-bd11ec4faa0517cfbd5829012682e05be17e77d6.tar.bz2 samba-bd11ec4faa0517cfbd5829012682e05be17e77d6.zip |
Merge commit 'origin/master' into abartlet-devel
Diffstat (limited to 'source3/modules')
-rw-r--r-- | source3/modules/vfs_default.c | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c index 9b842df93f..ded4b1af27 100644 --- a/source3/modules/vfs_default.c +++ b/source3/modules/vfs_default.c @@ -917,6 +917,7 @@ static int strict_allocate_ftruncate(vfs_handle_struct *handle, files_struct *fs SMB_OFF_T space_to_write; uint64_t space_avail; uint64_t bsize,dfree,dsize; + int ret; if (currpos == -1) return -1; @@ -943,21 +944,17 @@ static int strict_allocate_ftruncate(vfs_handle_struct *handle, files_struct *fs emulation is being done by the libc (like on AIX with JFS1). In that case we do our own emulation. posix_fallocate implementations can return ENOTSUP or EINVAL in cases like that. */ -#if defined(HAVE_POSIX_FALLOCATE) - { - int ret = sys_posix_fallocate(fsp->fh->fd, st.st_ex_size, space_to_write); - if (ret == ENOSPC) { - errno = ENOSPC; - return -1; - } - if (ret == 0) { - return 0; - } - DEBUG(10,("strict_allocate_ftruncate: sys_posix_fallocate " - "failed with error %d. " - "Falling back to slow manual allocation\n", ret)); + ret = sys_posix_fallocate(fsp->fh->fd, st.st_ex_size, space_to_write); + if (ret == ENOSPC) { + errno = ENOSPC; + return -1; } -#endif + if (ret == 0) { + return 0; + } + DEBUG(10,("strict_allocate_ftruncate: sys_posix_fallocate failed with " + "error %d. Falling back to slow manual allocation\n", ret)); + /* available disk space is enough or not? */ space_avail = get_dfree_info(fsp->conn, fsp->fsp_name->base_name, false, |