"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "libfuse-lite/fuse_lowlevel.c" between
ntfs-3g_ntfsprogs-2016.2.22.tgz and ntfs-3g_ntfsprogs-2017.3.23.tgz

About: NTFS-3G is a read-write NTFS driver for Linux and other operating systems. It provides safe handling of the Windows XP, Windows Server 2003, Windows 2000, Windows Vista, Windows Server 2008, Windows 7 and Windows 8 NTFS file systems.

fuse_lowlevel.c  (ntfs-3g_ntfsprogs-2016.2.22.tgz):fuse_lowlevel.c  (ntfs-3g_ntfsprogs-2017.3.23.tgz)
skipping to change at line 25 skipping to change at line 25
#include "fuse_lowlevel_compat.h" #include "fuse_lowlevel_compat.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <stddef.h> #include <stddef.h>
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
#include <limits.h> #include <limits.h>
#include <errno.h> #include <errno.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef MAJOR_IN_MKDEV
#include <sys/mkdev.h>
#endif
#ifdef MAJOR_IN_SYSMACROS
#include <sys/sysmacros.h>
#endif
#define PARAM(inarg) (((const char *)(inarg)) + sizeof(*(inarg))) #define PARAM(inarg) (((const char *)(inarg)) + sizeof(*(inarg)))
#define OFFSET_MAX 0x7fffffffffffffffLL #define OFFSET_MAX 0x7fffffffffffffffLL
struct fuse_ll; struct fuse_ll;
struct fuse_req { struct fuse_req {
struct fuse_ll *f; struct fuse_ll *f;
uint64_t unique; uint64_t unique;
int ctr; int ctr;
pthread_mutex_t lock; pthread_mutex_t lock;
skipping to change at line 564 skipping to change at line 574
const struct fuse_mknod_in *arg = (const struct fuse_mknod_in *) inarg; const struct fuse_mknod_in *arg = (const struct fuse_mknod_in *) inarg;
const char *name = PARAM(arg); const char *name = PARAM(arg);
if (req->f->conn.proto_minor >= 12) if (req->f->conn.proto_minor >= 12)
req->ctx.umask = arg->umask; req->ctx.umask = arg->umask;
else else
name = (const char *) inarg + FUSE_COMPAT_MKNOD_IN_SIZE; name = (const char *) inarg + FUSE_COMPAT_MKNOD_IN_SIZE;
if (req->f->op.mknod) { if (req->f->op.mknod) {
#if defined(__SOLARIS__) && defined(_LP64) #if defined(__SOLARIS__) && defined(_LP64)
/* Must unpack the device, as arg->rdev is limited to 32 bits */ /*
* Must unpack the device, as arg->rdev is limited to 32 bits,
* and must have the same format in 32-bit and 64-bit builds.
*/
req->f->op.mknod(req, nodeid, name, arg->mode, req->f->op.mknod(req, nodeid, name, arg->mode,
makedev((arg->rdev >> 18) & 0x3ffff, makedev((arg->rdev >> 18) & 0x3fff,
arg->rdev & 0x3fff)); arg->rdev & 0x3ffff));
#else #else
req->f->op.mknod(req, nodeid, name, arg->mode, arg->rdev); req->f->op.mknod(req, nodeid, name, arg->mode, arg->rdev);
#endif #endif
} else } else
fuse_reply_err(req, ENOSYS); fuse_reply_err(req, ENOSYS);
} }
static void do_mkdir(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) static void do_mkdir(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
{ {
const struct fuse_mkdir_in *arg = (const struct fuse_mkdir_in *) inarg; const struct fuse_mkdir_in *arg = (const struct fuse_mkdir_in *) inarg;
skipping to change at line 1093 skipping to change at line 1106
} }
if (arg->major > 7 || (arg->major == 7 && arg->minor >= 6)) { if (arg->major > 7 || (arg->major == 7 && arg->minor >= 6)) {
if (f->conn.async_read) if (f->conn.async_read)
f->conn.async_read = arg->flags & FUSE_ASYNC_READ; f->conn.async_read = arg->flags & FUSE_ASYNC_READ;
if (arg->max_readahead < f->conn.max_readahead) if (arg->max_readahead < f->conn.max_readahead)
f->conn.max_readahead = arg->max_readahead; f->conn.max_readahead = arg->max_readahead;
#ifdef POSIXACLS #ifdef POSIXACLS
if (arg->flags & FUSE_DONT_MASK) if (arg->flags & FUSE_DONT_MASK)
f->conn.capable |= FUSE_CAP_DONT_MASK; f->conn.capable |= FUSE_CAP_DONT_MASK;
if (arg->flags & FUSE_POSIX_ACL)
f->conn.capable |= FUSE_CAP_POSIX_ACL;
#endif #endif
if (arg->flags & FUSE_BIG_WRITES) if (arg->flags & FUSE_BIG_WRITES)
f->conn.capable |= FUSE_CAP_BIG_WRITES; f->conn.capable |= FUSE_CAP_BIG_WRITES;
if (arg->flags & FUSE_HAS_IOCTL_DIR) if (arg->flags & FUSE_HAS_IOCTL_DIR)
f->conn.capable |= FUSE_CAP_IOCTL_DIR; f->conn.capable |= FUSE_CAP_IOCTL_DIR;
} else { } else {
f->conn.async_read = 0; f->conn.async_read = 0;
f->conn.max_readahead = 0; f->conn.max_readahead = 0;
} }
skipping to change at line 1133 skipping to change at line 1148
* conditionnally (as needed if POSIXACLS is set) * conditionnally (as needed if POSIXACLS is set)
* Protocol 7.18 has the ability to process the ioctls * Protocol 7.18 has the ability to process the ioctls
*/ */
if (arg->major > 7 || (arg->major == 7 && arg->minor >= 18)) { if (arg->major > 7 || (arg->major == 7 && arg->minor >= 18)) {
outarg.minor = FUSE_KERNEL_MINOR_VERSION; outarg.minor = FUSE_KERNEL_MINOR_VERSION;
if (f->conn.want & FUSE_CAP_IOCTL_DIR) if (f->conn.want & FUSE_CAP_IOCTL_DIR)
outarg.flags |= FUSE_HAS_IOCTL_DIR; outarg.flags |= FUSE_HAS_IOCTL_DIR;
#ifdef POSIXACLS #ifdef POSIXACLS
if (f->conn.want & FUSE_CAP_DONT_MASK) if (f->conn.want & FUSE_CAP_DONT_MASK)
outarg.flags |= FUSE_DONT_MASK; outarg.flags |= FUSE_DONT_MASK;
if (f->conn.want & FUSE_CAP_POSIX_ACL)
outarg.flags |= FUSE_POSIX_ACL;
#endif #endif
} else { } else {
/* Never use a version more recent than supported by the kernel */ /* Never use a version more recent than supported by the kernel */
if ((arg->major < FUSE_KERNEL_MAJOR_FALLBACK) if ((arg->major < FUSE_KERNEL_MAJOR_FALLBACK)
|| ((arg->major == FUSE_KERNEL_MAJOR_FALLBACK) || ((arg->major == FUSE_KERNEL_MAJOR_FALLBACK)
&& (arg->minor < FUSE_KERNEL_MINOR_FALLBACK))) { && (arg->minor < FUSE_KERNEL_MINOR_FALLBACK))) {
outarg.major = arg->major; outarg.major = arg->major;
outarg.minor = arg->minor; outarg.minor = arg->minor;
} else { } else {
outarg.major = FUSE_KERNEL_MAJOR_FALLBACK; outarg.major = FUSE_KERNEL_MAJOR_FALLBACK;
outarg.minor = FUSE_KERNEL_MINOR_FALLBACK; outarg.minor = FUSE_KERNEL_MINOR_FALLBACK;
#ifdef POSIXACLS #ifdef POSIXACLS
if (f->conn.want & FUSE_CAP_DONT_MASK) if (f->conn.want & FUSE_CAP_DONT_MASK)
outarg.flags |= FUSE_DONT_MASK; outarg.flags |= FUSE_DONT_MASK;
if (f->conn.want & FUSE_CAP_POSIX_ACL)
outarg.flags |= FUSE_POSIX_ACL;
#endif #endif
} }
} }
if (f->conn.async_read) if (f->conn.async_read)
outarg.flags |= FUSE_ASYNC_READ; outarg.flags |= FUSE_ASYNC_READ;
if (f->op.getlk && f->op.setlk) if (f->op.getlk && f->op.setlk)
outarg.flags |= FUSE_POSIX_LOCKS; outarg.flags |= FUSE_POSIX_LOCKS;
if (f->conn.want & FUSE_CAP_BIG_WRITES) if (f->conn.want & FUSE_CAP_BIG_WRITES)
outarg.flags |= FUSE_BIG_WRITES; outarg.flags |= FUSE_BIG_WRITES;
outarg.max_readahead = f->conn.max_readahead; outarg.max_readahead = f->conn.max_readahead;
 End of changes. 6 change blocks. 
3 lines changed or deleted 22 lines changed or added

Home  |  About  |  All  |  Newest  |  Fossies Dox  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTPS