KERNELMAKE_PARAMS=
KERNELCPPFLAGS=
AC_MSG_CHECKING([if this is user mode linux])
- if test -f $kernelsrc/include/linux/autoconf.h && grep -q "^#define CONFIG_USERMODE 1" $kernelsrc/include/linux/autoconf.h; then
+ if test -f $kernelsrc/include/linux/autoconf.h && egrep -q "^#define CONFIG_(USERMODE|UML) 1" $kernelsrc/include/linux/autoconf.h; then
isuml=yes
KERNELMAKE_PARAMS="ARCH=um"
KERNELCPPFLAGS="-D__arch_um__ -DSUBARCH=\\\"i386\\\" -D_LARGEFILE64_SOURCE -I${kernelsrc}/arch/um/include -Derrno=kernel_errno -I${kernelsrc}/arch/um/kernel/tt/include -I${kernelsrc}/arch/um/kernel/skas/include"
filldir);
__free_page(page);
+ fuse_invalidate_attr(inode); /* atime changed */
return err;
}
link[req->out.args[0].size] = '\0';
out:
fuse_put_request(fc, req);
+ fuse_invalidate_attr(inode); /* atime changed */
return link;
}
fuse_put_request(fc, req);
if (!err)
SetPageUptodate(page);
- if (!(inode->i_sb->s_flags & MS_NOATIME))
- fuse_invalidate_attr(inode);
+ fuse_invalidate_attr(inode); /* atime changed */
out:
unlock_page(page);
return err;
SetPageUptodate(page);
unlock_page(page);
}
- if (!(inode->i_sb->s_flags & MS_NOATIME))
- fuse_invalidate_attr(inode);
return req->out.h.error;
}
if (!err && data.req->num_pages)
err = fuse_send_readpages(data.req, file, inode);
fuse_put_request(fc, data.req);
+ fuse_invalidate_attr(inode); /* atime changed */
return err;
}
#else /* KERNEL_2_6 */
i_size_write(inode, pos);
*ppos = pos;
}
- if (write || !(inode->i_sb->s_flags & MS_NOATIME))
- fuse_invalidate_attr(inode);
+ fuse_invalidate_attr(inode);
return res;
}
#else
#include "fuse_kernel.h"
#include <linux/version.h>
+#include <linux/utsname.h>
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) && LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
#error Kernel version 2.5.* not supported
attr.ino = FUSE_ROOT_ID;
return fuse_iget(sb, 1, 0, &attr);
}
-
+#ifndef FUSE_MAINLINE
#ifdef KERNEL_2_6
static struct dentry *fuse_get_dentry(struct super_block *sb, void *vobjp)
{
.encode_fh = fuse_encode_fh,
};
#endif
+#endif
static struct super_operations fuse_super_operations = {
.alloc_inode = fuse_alloc_inode,
sb->s_magic = FUSE_SUPER_MAGIC;
sb->s_op = &fuse_super_operations;
sb->s_maxbytes = MAX_LFS_FILESIZE;
+#ifndef FUSE_MAINLINE
#ifdef KERNEL_2_6
sb->s_export_op = &fuse_export_operations;
+#endif
#endif
file = fget(d.fd);
struct fuse_dirhandle {
pthread_mutex_t lock;
struct fuse *fuse;
- unsigned char *contents;
+ char *contents;
int allocated;
unsigned len;
unsigned needlen;
unsigned namelen = strlen(name);
unsigned entsize;
unsigned newlen;
- unsigned char *newptr;
+ char *newptr;
if (stat)
stbuf = *stat;
struct fuse_setxattr_in *arg)
{
char *name = PARAM(arg);
- unsigned char *value = name + strlen(name) + 1;
+ char *value = name + strlen(name) + 1;
if (req->f->op.setxattr)
req->f->op.setxattr(req, nodeid, name, value, arg->size,
static void mt_generic_proc(struct fuse_ll *f, struct fuse_cmd *cmd, void *data)
{
- (void) f;
struct procdata *pd = (struct procdata *) data;
+ (void) f;
pd->proc(pd->f, cmd, pd->data);
}
char *dev;
const char *type = "fuse";
struct stat stbuf;
- char *fsname;
- char *mnt_opts;
+ char *fsname = NULL;
+ char *mnt_opts = NULL;
const char *real_mnt = mnt;
int currdir_fd = -1;
int mountpoint_fd = -1;