Whamcloud - gitweb
b21012 conf-sanity test_52: @@@@@@ FAIL: Unable to tar files
[fs/lustre-release.git] / lustre / lclient / glimpse.c
index ed81f15..8c69708 100644 (file)
@@ -26,7 +26,7 @@
  * GPL HEADER END
  */
 /*
- * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  */
 /*
 #include <sys/stat.h>
 #include <sys/queue.h>
 #include <fcntl.h>
-# include <sysio.h>
-# ifdef HAVE_XTIO_H
-#  include <xtio.h>
-# endif
-# include <fs.h>
-# include <mount.h>
-# include <inode.h>
-# ifdef HAVE_FILE_H
-#  include <file.h>
-# endif
-# include <liblustre.h>
+#include <liblustre.h>
 #endif
 
 #include "cl_object.h"
@@ -118,6 +108,7 @@ int cl_glimpse_lock(const struct lu_env *env, struct cl_io *io,
                         *descr = whole_file;
                         descr->cld_obj   = clob;
                         descr->cld_mode  = CLM_PHANTOM;
+                        descr->cld_enq_flags = CEF_ASYNC | CEF_MUST;
                         cio->cui_glimpse = 1;
                         /*
                          * CEF_ASYNC is used because glimpse sub-locks cannot
@@ -127,9 +118,8 @@ int cl_glimpse_lock(const struct lu_env *env, struct cl_io *io,
                          * CEF_MUST protects glimpse lock from conversion into
                          * a lockless mode.
                          */
-                        lock = cl_lock_request(env, io, descr,
-                                               CEF_ASYNC|CEF_MUST,
-                                               "glimpse", cfs_current());
+                        lock = cl_lock_request(env, io, descr, "glimpse",
+                                               cfs_current());
                         cio->cui_glimpse = 0;
                         if (!IS_ERR(lock)) {
                                 result = cl_wait(env, lock);
@@ -223,10 +213,7 @@ int cl_local_size(struct inode *inode)
 
         ENTRY;
 
-        /*
-         * XXX layering violation.
-         */
-        if (cl_i2info(inode)->lli_smd->lsm_stripe_count == 0)
+        if (!cl_i2info(inode)->lli_smd)
                 RETURN(0);
 
         result = cl_io_get(inode, &env, &io, &refcheck);