Remove pre-Linux 2.6 support
[openafs.git] / src / afs / LINUX / osi_vfsops.c
index 5cf5d55..b0b8a28 100644 (file)
 #include <afsconfig.h>
 #include "afs/param.h"
 
-RCSID
-    ("$Header$");
 
 #define __NO_VERSION__         /* don't define kernel_version in module.h */
 #include <linux/module.h> /* early to avoid printf->printk mapping */
 #include "afs/sysincludes.h"
 #include "afsincludes.h"
 #include "afs/afs_stats.h"
-#if !defined(AFS_LINUX26_ENV)
-#include "h/locks.h"
-#endif
-#if defined(AFS_LINUX24_ENV)
 #include "h/smp_lock.h"
-#endif
 
 
 struct vcache *afs_globalVp = 0;
 struct vfs *afs_globalVFS = 0;
-#if defined(AFS_LINUX24_ENV)
 struct vfsmount *afs_cacheMnt;
-#endif
 int afs_was_mounted = 0;       /* Used to force reload if mount/unmount/mount */
 
 extern struct super_operations afs_sops;
-#if defined(AFS_LINUX26_ENV) && !defined(AFS_NONFSTRANS)
+#if !defined(AFS_NONFSTRANS)
 extern struct export_operations afs_export_ops;
 #endif
 extern afs_rwlock_t afs_xvcache;
@@ -66,7 +57,6 @@ int afs_fill_super(struct super_block *sb, void *data, int silent);
  * read the "super block" for AFS - roughly eguivalent to struct vfs.
  * dev, covered, s_rd_only, s_dirt, and s_type will be set by read_super.
  */
-#if defined(AFS_LINUX26_ENV)
 #ifdef GET_SB_HAS_STRUCT_VFSMOUNT
 int
 afs_get_sb(struct file_system_type *fs_type, int flags,
@@ -92,29 +82,13 @@ struct file_system_type afs_fs_type = {
     .kill_sb = kill_anon_super,
     .fs_flags = FS_BINARY_MOUNTDATA,
 };
-#elif defined(AFS_LINUX24_ENV)
-DECLARE_FSTYPE(afs_fs_type, "afs", afs_read_super, 0);
-#else
-struct file_system_type afs_fs_type = {
-    "afs",                     /* name - used by mount operation. */
-    0,                         /* requires_dev - no for network filesystems. mount() will 
-                                * pass us an "unnamed" device. */
-    afs_read_super,            /* wrapper to afs_mount */
-    NULL                       /* pointer to next file_system_type once registered. */
-};
-#endif
 
-#if defined(AFS_LINUX26_ENV)
 struct backing_dev_info afs_backing_dev_info = {
-    .ra_pages          = 0, /* disable readahead, afs does prefetch */
+    .ra_pages          = 32,
 };
 
 int
 afs_fill_super(struct super_block *sb, void *data, int silent)
-#else
-struct super_block *
-afs_read_super(struct super_block *sb, void *data, int silent)
-#endif
 {
     int code = 0;
 
@@ -123,23 +97,12 @@ afs_read_super(struct super_block *sb, void *data, int silent)
        printf
            ("You must reload the AFS kernel extensions before remounting AFS.\n");
        AFS_GUNLOCK();
-#if defined(AFS_LINUX26_ENV)
        return -EINVAL;
-#else
-       return NULL;
-#endif
     }
     afs_was_mounted = 1;
 
     /* Set basics of super_block */
-#if !defined(AFS_LINUX24_ENV)
-    lock_super(sb);
-#endif
-#if defined(AFS_LINUX26_ENV)
    __module_get(THIS_MODULE);
-#else
-    MOD_INC_USE_COUNT;
-#endif
 
     afs_globalVFS = sb;
     sb->s_blocksize = 1024;
@@ -149,7 +112,7 @@ afs_read_super(struct super_block *sb, void *data, int silent)
 #if defined(HAVE_BDI_INIT)
     bdi_init(&afs_backing_dev_info);
 #endif
-#if defined(AFS_LINUX26_ENV) && !defined(AFS_NONFSTRANS)
+#if !defined(AFS_NONFSTRANS)
     sb->s_export_op = &afs_export_ops;
 #endif
 #if defined(MAX_NON_LFS)
@@ -169,23 +132,11 @@ afs_read_super(struct super_block *sb, void *data, int silent)
     code = afs_root(sb);
     if (code) {
        afs_globalVFS = NULL;
-#if defined(AFS_LINUX26_ENV)
         module_put(THIS_MODULE);
-#else
-        MOD_DEC_USE_COUNT;
-#endif
     }
 
-#if !defined(AFS_LINUX24_ENV)
-    unlock_super(sb);
-#endif
-
     AFS_GUNLOCK();
-#if defined(AFS_LINUX26_ENV)
     return code ? -EINVAL : 0;
-#else
-    return code ? NULL : sb;
-#endif
 }
 
 
@@ -198,7 +149,7 @@ afs_root(struct super_block *afsp)
     register struct vcache *tvp = 0;
 
     AFS_STATCNT(afs_root);
-    if (afs_globalVp && (afs_globalVp->states & CStatd)) {
+    if (afs_globalVp && (afs_globalVp->f.states & CStatd)) {
        tvp = afs_globalVp;
     } else {
        cred_t *credp = crref();
@@ -219,11 +170,7 @@ afs_root(struct super_block *afsp)
 
                /* setup super_block and mount point inode. */
                afs_globalVp = tvp;
-#if defined(AFS_LINUX24_ENV)
                afsp->s_root = d_alloc_root(ip);
-#else
-               afsp->s_root = d_alloc_root(ip, NULL);
-#endif
                afsp->s_root->d_op = &afs_dentry_operations;
            } else
                code = ENOENT;
@@ -253,9 +200,7 @@ afs_notify_change(struct dentry *dp, struct iattr *iattrp)
     VATTR_NULL(&vattr);
     iattr2vattr(&vattr, iattrp);       /* Convert for AFS vnodeops call. */
 
-#if defined(AFS_LINUX26_ENV)
     lock_kernel();
-#endif
     AFS_GLOCK();
     code = afs_setattr(VTOAFS(ip), &vattr, credp);
     if (!code) {
@@ -263,9 +208,7 @@ afs_notify_change(struct dentry *dp, struct iattr *iattrp)
        vattr2inode(ip, &vattr);
     }
     AFS_GUNLOCK();
-#if defined(AFS_LINUX26_ENV)
     unlock_kernel();
-#endif
     crfree(credp);
     return -code;
 }
@@ -303,13 +246,11 @@ afs_destroy_inode(struct inode *inode)
 static void
 #if defined(HAVE_KMEM_CACHE_T)
 init_once(void * foo, kmem_cache_t * cachep, unsigned long flags)
-#else
-#if defined(KMEM_CACHE_INIT)
+#elif defined(KMEM_CACHE_INIT)
 init_once(struct kmem_cache * cachep, void * foo)
 #else
 init_once(void * foo, struct kmem_cache * cachep, unsigned long flags)
 #endif
-#endif
 {
     struct vcache *vcp = (struct vcache *) foo;
 
@@ -386,21 +327,12 @@ afs_put_super(struct super_block *sbp)
     AFS_GLOCK();
     AFS_STATCNT(afs_unmount);
 
-#if !defined(AFS_LINUX26_ENV)
-    if (!suser()) {
-       AFS_GUNLOCK();
-       return;
-    }
-#endif
-
     afs_globalVFS = 0;
     afs_globalVp = 0;
 
     osi_linux_free_inode_pages();      /* invalidate and release remaining AFS inodes. */
     afs_shutdown();
-#if defined(AFS_LINUX24_ENV)
     mntput(afs_cacheMnt);
-#endif
 
     osi_linux_verify_alloced_memory();
 #if defined(HAVE_BDI_INIT)
@@ -409,11 +341,7 @@ afs_put_super(struct super_block *sbp)
     AFS_GUNLOCK();
 
     sbp->s_dev = 0;
-#if defined(AFS_LINUX26_ENV)
     module_put(THIS_MODULE);
-#else
-    MOD_DEC_USE_COUNT;
-#endif
 }
 
 
@@ -421,32 +349,14 @@ afs_put_super(struct super_block *sbp)
  * statp is in user space, so we need to cobble together a statfs, then
  * copy it.
  */
-#if defined(AFS_LINUX26_ENV)
 int
 #if defined(STATFS_TAKES_DENTRY)
 afs_statfs(struct dentry *dentry, struct kstatfs *statp)
 #else
 afs_statfs(struct super_block *sbp, struct kstatfs *statp)
 #endif
-#elif defined(AFS_LINUX24_ENV)
-int
-afs_statfs(struct super_block *sbp, struct statfs *statp)
-#else
-int
-afs_statfs(struct super_block *sbp, struct statfs *__statp, int size)
-#endif
 {
-#if !defined(AFS_LINUX24_ENV)
-    struct statfs stat, *statp;
-
-    if (size < sizeof(struct statfs))
-       return;
-
-    memset(&stat, 0, size);
-    statp = &stat;
-#else
     memset(statp, 0, sizeof(*statp));
-#endif
 
     AFS_STATCNT(afs_statfs);
 
@@ -463,9 +373,6 @@ afs_statfs(struct super_block *sbp, struct statfs *__statp, int size)
     statp->f_fsid.val[1] = AFS_VFSFSID;
     statp->f_namelen = 256;
 
-#if !defined(AFS_LINUX24_ENV)
-    memcpy_tofs(__statp, &stat, size);
-#endif
     return 0;
 }
 
@@ -477,9 +384,6 @@ struct super_operations afs_sops = {
   .clear_inode =       afs_clear_inode,
   .put_super =         afs_put_super,
   .statfs =            afs_statfs,
-#if !defined(AFS_LINUX24_ENV)
-  .notify_change =     afs_notify_change,
-#endif
 };
 
 /************** Support routines ************************/
@@ -500,27 +404,15 @@ iattr2vattr(struct vattr *vattrp, struct iattr *iattrp)
     if (iattrp->ia_valid & ATTR_SIZE)
        vattrp->va_size = iattrp->ia_size;
     if (iattrp->ia_valid & ATTR_ATIME) {
-#if defined(AFS_LINUX26_ENV)
        vattrp->va_atime.tv_sec = iattrp->ia_atime.tv_sec;
-#else
-       vattrp->va_atime.tv_sec = iattrp->ia_atime;
-#endif
        vattrp->va_atime.tv_usec = 0;
     }
     if (iattrp->ia_valid & ATTR_MTIME) {
-#if defined(AFS_LINUX26_ENV)
        vattrp->va_mtime.tv_sec = iattrp->ia_mtime.tv_sec;
-#else
-       vattrp->va_mtime.tv_sec = iattrp->ia_mtime;
-#endif
        vattrp->va_mtime.tv_usec = 0;
     }
     if (iattrp->ia_valid & ATTR_CTIME) {
-#if defined(AFS_LINUX26_ENV)
        vattrp->va_ctime.tv_sec = iattrp->ia_ctime.tv_sec;
-#else
-       vattrp->va_ctime.tv_sec = iattrp->ia_ctime;
-#endif
        vattrp->va_ctime.tv_usec = 0;
     }
 }
@@ -544,8 +436,7 @@ vattr2inode(struct inode *ip, struct vattr *vp)
     ip->i_mode = vp->va_mode;
     ip->i_uid = vp->va_uid;
     ip->i_gid = vp->va_gid;
-    ip->i_size = vp->va_size;
-#if defined(AFS_LINUX26_ENV)
+    i_size_write(ip, vp->va_size);
     ip->i_atime.tv_sec = vp->va_atime.tv_sec;
     ip->i_atime.tv_nsec = 0;
     ip->i_mtime.tv_sec = vp->va_mtime.tv_sec;
@@ -556,11 +447,6 @@ vattr2inode(struct inode *ip, struct vattr *vp)
     ip->i_mtime.tv_nsec = afs_sysnamegen;
     ip->i_ctime.tv_sec = vp->va_ctime.tv_sec;
     ip->i_ctime.tv_nsec = 0;
-#else
-    ip->i_atime = vp->va_atime.tv_sec;
-    ip->i_mtime = vp->va_mtime.tv_sec;
-    ip->i_ctime = vp->va_ctime.tv_sec;
-#endif
 }
 
 /* osi_linux_free_inode_pages