dread-do-validation-20041012
[openafs.git] / src / afs / LINUX / osi_vnodeops.c
index ab516a1..c09561a 100644 (file)
@@ -29,6 +29,9 @@ RCSID
 #include "afs/afs_stats.h"
 #include "afs/afs_osidnlc.h"
 #include "h/mm.h"
+#ifdef HAVE_MM_INLINE_H
+#include "h/mm_inline.h"
+#endif
 #include "h/pagemap.h"
 #if defined(AFS_LINUX24_ENV)
 #include "h/smp_lock.h"
@@ -330,11 +333,11 @@ afs_linux_readdir(struct file *fp, void *dirbuf, filldir_t filldir)
     code = 0;
     offset = (int) fp->f_pos;
     while (1) {
-       dirpos = BlobScan(&tdc->f.inode, offset);
+       dirpos = BlobScan(&tdc->f, offset);
        if (!dirpos)
            break;
 
-       de = afs_dir_GetBlob(&tdc->f.inode, dirpos);
+       de = afs_dir_GetBlob(&tdc->f, dirpos);
        if (!de)
            break;
 
@@ -646,12 +649,7 @@ afs_linux_lock(struct file *fp, int cmd, struct file_lock *flp)
     int code = 0;
     struct vcache *vcp = ITOAFS(FILE_INODE(fp));
     cred_t *credp = crref();
-#ifdef AFS_LINUX24_ENV
-    struct flock64 flock;
-#else
-    struct flock flock;
-#endif
-
+    struct AFS_FLOCK flock;
     /* Convert to a lock format afs_lockctl understands. */
     memset((char *)&flock, 0, sizeof(flock));
     flock.l_type = flp->fl_type;
@@ -1085,6 +1083,12 @@ afs_linux_lookup(struct inode *dip, struct dentry *dp)
            printk
                ("afs_linux_lookup: ip->i_mode 0x%x  dp->d_name.name %s  code %d\n",
                 ip->i_mode, dp->d_name.name, code);
+#ifdef STRUCT_INODE_HAS_I_SECURITY
+       if (ip->i_security == NULL) {
+           if (security_inode_alloc(ip))
+               panic("afs_linux_lookup: Cannot allocate inode security");
+       }
+#endif
 #else
        if (S_ISDIR(ip->i_mode))
            ip->i_op = &afs_dir_iops;