dav_fuse.c (davfs2-1.6.1) | : | dav_fuse.c (davfs2-1.7.0) | ||
---|---|---|---|---|
/* dav_fuse.c: interface to the fuse kernel module FUSE_KERNEL_VERSION 7. | /* dav_fuse.c: interface to the fuse kernel module FUSE_KERNEL_VERSION 7. | |||
Copyright (C) 2006, 2007, 2008. 2009, 2014, 2020 Werner Baumann | Copyright (C) 2006, 2007, 2008. 2009, 2014, 2020 Werner Baumann | |||
Copyright (C) 2022 Ali Abdallah <ali.abdallah@suse.com> | ||||
This file is part of davfs2. | This file is part of davfs2. | |||
davfs2 is free software; you can redistribute it and/or modify | davfs2 is free software; you can redistribute it and/or modify | |||
it under the terms of the GNU General Public License as published by | it under the terms of the GNU General Public License as published by | |||
the Free Software Foundation; either version 3 of the License, or | the Free Software Foundation; either version 3 of the License, or | |||
(at your option) any later version. | (at your option) any later version. | |||
davfs2 is distributed in the hope that it will be useful, | davfs2 is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
skipping to change at line 185 | skipping to change at line 186 | |||
int ret = select(device + 1, &fds, NULL, NULL, &tv); | int ret = select(device + 1, &fds, NULL, NULL, &tv); | |||
if (debug) | if (debug) | |||
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "SELECT: %i", ret); | syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "SELECT: %i", ret); | |||
if (!*keep_on_running && !unmounting) { | if (!*keep_on_running && !unmounting) { | |||
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_ERR), _("unmounting %s"), | syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_ERR), _("unmounting %s"), | |||
mountpoint); | mountpoint); | |||
unmounting = 1; | unmounting = 1; | |||
pid_t pid = fork(); | pid_t pid = fork(); | |||
if (pid == 0) { | if (pid == 0) { | |||
#if defined(__linux__) | ||||
execl("/bin/umount", "umount", "-il", mountpoint, NULL); | execl("/bin/umount", "umount", "-il", mountpoint, NULL); | |||
#elif defined(__FreeBSD__) | ||||
execl("/sbin/umount", "umount", "-v", mountpoint, NULL); | ||||
#endif | ||||
_exit(EXIT_FAILURE); | _exit(EXIT_FAILURE); | |||
} | } | |||
} | } | |||
if (ret > 0) { | if (ret > 0) { | |||
ssize_t bytes_read = read(device, buf, buf_size); | ssize_t bytes_read = read(device, buf, buf_size); | |||
if (bytes_read <= 0) { | if (bytes_read <= 0) { | |||
if (debug) | if (debug) | |||
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "READ: %s", | syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "READ: %s", | |||
strerror(errno)); | strerror(errno)); | |||
skipping to change at line 905 | skipping to change at line 910 | |||
return sizeof(struct fuse_out_header); | return sizeof(struct fuse_out_header); | |||
} | } | |||
out->st.blocks = st->blocks; | out->st.blocks = st->blocks; | |||
out->st.bfree = st->bavail; | out->st.bfree = st->bavail; | |||
out->st.bavail = st->bavail; | out->st.bavail = st->bavail; | |||
out->st.bsize = st->bsize; | out->st.bsize = st->bsize; | |||
out->st.files = st->files; | out->st.files = st->files; | |||
out->st.ffree = st->ffree; | out->st.ffree = st->ffree; | |||
out->st.namelen = st->namelen; | out->st.namelen = st->namelen; | |||
out->st.frsize = 0; | out->st.frsize = st->bsize; | |||
out->st.padding = 0; | out->st.padding = 0; | |||
int i; | int i; | |||
for (i = 0; i < 6; i++) | for (i = 0; i < 6; i++) | |||
out->st.spare[i] = 0; | out->st.spare[i] = 0; | |||
oh->error = 0; | oh->error = 0; | |||
return sizeof(struct fuse_out_header) + sizeof(struct fuse_statfs_out); | return sizeof(struct fuse_out_header) + sizeof(struct fuse_statfs_out); | |||
} | } | |||
static uint32_t | static uint32_t | |||
End of changes. 4 change blocks. | ||||
1 lines changed or deleted | 6 lines changed or added |