fix
authorMiklos Szeredi <miklos@szeredi.hu>
Sat, 15 Jan 2005 14:32:56 +0000 (14:32 +0000)
committerMiklos Szeredi <miklos@szeredi.hu>
Sat, 15 Jan 2005 14:32:56 +0000 (14:32 +0000)
ChangeLog
kernel/configure.ac
kernel/dir.c
kernel/fuse_i.h

index 7530e5ef25f786a627f75ed037c4c291801ad1db..cd11a5260184bb7fd379f7951871b6cd31492313 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
-2005-01-13  Miklos Szeredi <miklos@szeredi.hu>
+2005-01-15  Miklos Szeredi <miklos@szeredi.hu>
+
+       * fix compilation on 2.4 kernels (reported by Valient Gough)
 
+       * fix failure to unmount bug (found by David Shaw)
+       
        * fusermount: improve parsing of /etc/fuse.conf
 
 2005-01-13  Miklos Szeredi <miklos@szeredi.hu>
index 687e45a8db80baf49112e6c45bf234d37648ed8b..e90c4c379763e0e4de4ea994b6f4953b6ddaa80b 100644 (file)
@@ -56,16 +56,16 @@ else
        kernel_autoconf=$kernelsrc/include/linux/autoconf.h
        AC_MSG_CHECKING([if FUSE is configured in the kernel])
        if test -f $kernel_autoconf; then
-               if grep -q "^#define CONFIG_FUSE 1" $kernel_autoconf || grep -q "^#define CONFIG_FUSE_MODULE 1" $kernel_autoconf; then
+               if grep -q "^#define CONFIG_FUSE_FS 1" $kernel_autoconf || grep -q "^#define CONFIG_FUSE_FS_MODULE 1" $kernel_autoconf; then
                        fuse_configured=yes
                fi
        fi
        AC_MSG_RESULT([$fuse_configured])
        if test -z "$enable_kernel_module" -a "$fuse_configured" = yes; then
                ENABLE_FUSE_MODULE=n
-               AC_MSG_WARN([FUSE is configured in the kernel, not building kernel])
-               AC_MSG_WARN([module.  To force building of kernel module use the])
-               AC_MSG_WARN(['--enable-kernel-module' option.])
+               AC_MSG_NOTICE([NOTE:     Detected that FUSE is already present in the kernel, so])
+               AC_MSG_NOTICE([NOTE:     building of kernel module is disabled.  To force building])
+               AC_MSG_NOTICE([NOTE:     of kernel module use the '--enable-kernel-module' option.])
        fi
 fi
 if test "$enable_kernel_module" = no; then
index 41f824cc4d547ec68e737db8d516574f0bc696ed..91fa22cab73ab7d424206d3ca27c4b0f5eec2059 100644 (file)
@@ -416,7 +416,8 @@ int fuse_do_getattr(struct inode *inode)
        fuse_put_request(fc, req);
        if (!err) {
                if ((inode->i_mode ^ arg.attr.mode) & S_IFMT) {
-                       make_bad_inode(inode);
+                       if (get_node_id(inode) != FUSE_ROOT_ID)
+                               make_bad_inode(inode);
                        err = -EIO;
                } else {
                        struct fuse_inode *fi = get_fuse_inode(inode);
@@ -757,7 +758,8 @@ static int fuse_setattr(struct dentry *entry, struct iattr *attr)
        fuse_put_request(fc, req);
        if (!err) {
                if ((inode->i_mode ^ outarg.attr.mode) & S_IFMT) {
-                       make_bad_inode(inode);
+                       if (get_node_id(inode) != FUSE_ROOT_ID)
+                               make_bad_inode(inode);
                        err = -EIO;
                } else {
                        if (is_truncate) {
index d9a412573f93e16416ba4a846a588c338a67cbac..92fb703a20b6774eab7692d153f05094348f0b55 100644 (file)
 #ifndef BUG_ON
 #define BUG_ON(x)
 #endif
+#ifndef container_of
+#define container_of(ptr, type, member) ({                     \
+        const typeof( ((type *)0)->member ) *__mptr = (ptr);   \
+        (type *)( (char *)__mptr - offsetof(type,member) );})
+#endif
 #ifndef __user
 #define __user
 #endif