diff -Naurp linux-2.4.22-ck2/fs/supermount/changelog linux-2.4.22-ck3pre/fs/supermount/changelog --- linux-2.4.22-ck2/fs/supermount/changelog 2003-09-13 20:51:01.000000000 +1000 +++ linux-2.4.22-ck3pre/fs/supermount/changelog 2003-09-17 17:35:49.000000000 +1000 @@ -1,5 +1,19 @@ * ? ? ? Andrey Borzenkov ?.?.? +* Sat 23 Aug 2003 Andrey Borzenkov 1.2.9 + + - fix "Stale NFS handle" for mountpoint without mounted media (reported + by Danny Tholen). This was introduced in 1.2.8 together with change + of behaviour on unmounted subfs. Now d_revalidate always returns + valid for root unless subfs tells different. + + - /proc/fs/supermount/version is read-only, do not set permissions to + rw + + - explicit is needed in init.c on ppc and possibly + other archs (it was implicitly included on i386). Reported by + Danny Tholen + * Sun 13 Jul 2003 Andrey Borzenkov 1.2.8 - hush most unused variables warnings with CONFIG_DEBUG (idea diff -Naurp linux-2.4.22-ck2/fs/supermount/dentry.c linux-2.4.22-ck3pre/fs/supermount/dentry.c --- linux-2.4.22-ck2/fs/supermount/dentry.c 2003-09-13 20:51:01.000000000 +1000 +++ linux-2.4.22-ck3pre/fs/supermount/dentry.c 2003-09-17 17:35:49.000000000 +1000 @@ -10,7 +10,7 @@ * Rewritten for kernel 2.4.21 (C) 2003 Andrey Borzenkov * (arvidjaar@mail.ru) * - * $Id: dentry.c,v 1.11 2003/07/13 19:23:31 bor Exp $ + * $Id: dentry.c,v 1.12 2003/08/23 16:31:05 bor Exp $ */ #define S_DBG_TRACE_CURRENT S_DBG_TRACE_DENTRY @@ -96,17 +96,20 @@ out: return err; } +/* + * Root dentry is always valid unless subfs decides something else + * cf. file.c:supermount_open() + */ static int supermount_d_revalidate(struct dentry *dentry, int flags) { struct super_block *sb = dentry->d_sb; struct dentry *subd; - int rc; + int rc = (dentry == sb->s_root); struct vfsmount *mnt; ENTER(sb, "dentry=%s", dentry->d_name.name); - rc = 0; mnt = subfs_prevent_umount(sb); if (!mnt) goto out; diff -Naurp linux-2.4.22-ck2/fs/supermount/init.c linux-2.4.22-ck3pre/fs/supermount/init.c --- linux-2.4.22-ck2/fs/supermount/init.c 2003-09-13 20:51:01.000000000 +1000 +++ linux-2.4.22-ck3pre/fs/supermount/init.c 2003-09-17 17:35:49.000000000 +1000 @@ -6,10 +6,11 @@ * Rewritten for kernel 2.4.21 (C) 2003 Andrey Borzenkov * (arvidjaar@mail.ru) * - * $Id: init.c,v 1.6 2003/04/19 18:09:04 bor Exp $ + * $Id: init.c,v 1.7 2003/07/22 17:07:30 bor Exp $ */ #include "supermount.h" +#include DECLARE_FSTYPE(supermount_fs_type, "supermount", supermount_read_super, FS_NO_SUBMNT); diff -Naurp linux-2.4.22-ck2/fs/supermount/proc.c linux-2.4.22-ck3pre/fs/supermount/proc.c --- linux-2.4.22-ck2/fs/supermount/proc.c 2003-09-13 20:51:01.000000000 +1000 +++ linux-2.4.22-ck3pre/fs/supermount/proc.c 2003-09-17 17:35:49.000000000 +1000 @@ -4,7 +4,7 @@ * Initial version for kernel 2.4.21 (C) 2003 Andrey Borzenkov * (arvidjaar@mail.ru) * - * $Id: proc.c,v 1.7 2003/04/20 15:45:11 bor Exp $ + * $Id: proc.c,v 1.8 2003/08/09 11:11:36 bor Exp $ */ #include "supermount.h" @@ -232,7 +232,7 @@ supermount_proc_register(void) "SUPERMOUNT failed to create /proc/fs/supermount/version"); supermount_proc_subfs = create_proc_entry("subfs", - S_IFREG | S_IRUGO | S_IWUSR, + S_IFREG | S_IRUGO, supermount_proc_root); if (supermount_proc_subfs) { diff -Naurp linux-2.4.22-ck2/fs/supermount/supermount.h linux-2.4.22-ck3pre/fs/supermount/supermount.h --- linux-2.4.22-ck2/fs/supermount/supermount.h 2003-09-13 21:17:25.000000000 +1000 +++ linux-2.4.22-ck3pre/fs/supermount/supermount.h 2003-09-17 17:35:49.000000000 +1000 @@ -2,7 +2,7 @@ #define _SUPERMOUNT_I_H /* - * $Id: supermount.h,v 1.48 2003/07/13 19:24:22 bor Exp $ + * $Id: supermount.h,v 1.50 2003/08/23 16:34:41 bor Exp $ */ #include @@ -26,7 +26,7 @@ */ #define SUPERMOUNT_SUPER_MAGIC 0x9fa1 -#define SUPERMOUNT_VERSION "1.2.8" +#define SUPERMOUNT_VERSION "1.2.9" #define S_DBG_DEBUG 0x001 #define S_DBG_TRACE_DENTRY 0x002