1 /* usmb - mount SMB shares via FUSE and Samba
2 * Copyright (C) 2006-2009 Geoff Johnstone
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 3 as
6 * published by the Free Software Foundation.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
22 #include "samba3x-compat.h"
24 #include "usmb_file.h"
28 int usmb_statfs (const char *path UNUSED
, struct statvfs
*vfs UNUSED
)
36 int compat_truncate (const char *path UNUSED
, SMBCFILE
*file UNUSED
, off_t size
)
38 /* Windows doesn't support truncation so we implement a limited version:
39 * 0 == size => create a new file for writing.
40 * current size == size => succeed.
41 * else return -ENOSYS.
46 char *url
= make_url (path
);
50 SMBCFILE
*file_
= smbc_getFunctionOpen (ctx
) (ctx
, url
,
51 O_WRONLY
| O_TRUNC
, 0);
58 smbc_getFunctionClose (ctx
) (ctx
, file_
);
65 int ret
= usmb_getattr (path
, &st
);
70 return (size
== st
.st_size
) ? 0 : -ENOSYS
;