Whamcloud - gitweb
LU-7422 llite: don't panic when fid is insane
[fs/lustre-release.git] / lustre / llite / llite_lib.c
index 6bf0865..cc1bab4 100644 (file)
@@ -234,14 +234,6 @@ static int client_common_fill_super(struct super_block *sb, char *md, char *dt,
         if (sbi->ll_flags & LL_SBI_USER_XATTR)
                 data->ocd_connect_flags |= OBD_CONNECT_XATTR;
 
-#ifdef HAVE_MS_FLOCK_LOCK
-        /* force vfs to use lustre handler for flock() calls - bug 10743 */
-        sb->s_flags |= MS_FLOCK_LOCK;
-#endif
-#ifdef MS_HAS_NEW_AOPS
-        sb->s_flags |= MS_HAS_NEW_AOPS;
-#endif
-
         if (sbi->ll_flags & LL_SBI_FLOCK)
                 sbi->ll_fop = &ll_file_operations_flock;
         else if (sbi->ll_flags & LL_SBI_LOCALFLOCK)
@@ -2311,11 +2303,16 @@ int ll_prep_inode(struct inode **inode, struct ptlrpc_request *req,
        } else {
                LASSERT(sb != NULL);
 
-                /*
-                 * At this point server returns to client's same fid as client
-                 * generated for creating. So using ->fid1 is okay here.
-                 */
-               LASSERT(fid_is_sane(&md.body->mbo_fid1));
+               /*
+                * At this point server returns to client's same fid as client
+                * generated for creating. So using ->fid1 is okay here.
+                */
+               if (!fid_is_sane(&md.body->mbo_fid1)) {
+                       CERROR("%s: Fid is insane "DFID"\n",
+                               ll_get_fsname(sb, NULL, 0),
+                               PFID(&md.body->mbo_fid1));
+                       GOTO(out, rc = -EINVAL);
+               }
 
                *inode = ll_iget(sb, cl_fid_build_ino(&md.body->mbo_fid1,
                                             sbi->ll_flags & LL_SBI_32BIT_API),