Whamcloud - gitweb
ORNL-24 skip unnecessary client obj hash lookup
[fs/lustre-release.git] / lustre / include / lu_object.h
index 824e758..ae21d70 100644 (file)
@@ -30,6 +30,9 @@
  * Use is subject to license terms.
  */
 /*
+ * Copyright (c) 2011 Whamcloud, Inc.
+ */
+/*
  * This file is part of Lustre, http://www.lustre.org/
  * Lustre is a trademark of Sun Microsystems, Inc.
  */
@@ -169,11 +172,23 @@ struct lu_device_operations {
 };
 
 /**
+ * For lu_object_conf flags
+ */
+typedef enum {
+        /* Currently, only used for client-side object initialization. */
+        LOC_F_NEW = 0x1,
+} loc_flags_t;
+
+/**
  * Object configuration, describing particulars of object being created. On
  * server this is not used, as server objects are full identified by fid. On
  * client configuration contains struct lustre_md.
  */
 struct lu_object_conf {
+        /**
+         * Some hints for obj find and alloc.
+         */
+        loc_flags_t     loc_flags;
 };
 
 /**
@@ -445,6 +460,8 @@ enum la_valid {
         LA_NLINK  = 1 << 10,
         LA_RDEV   = 1 << 11,
         LA_BLKSIZE = 1 << 12,
+        LA_KILL_SUID = 1 << 13,
+        LA_KILL_SGID = 1 << 14,
 };
 
 /**
@@ -552,7 +569,11 @@ struct lu_object_header {
 struct fld;
 
 struct lu_site_bkt_data {
-       /**
+        /**
+         * number of busy object on this bucket
+         */
+        long                      lsb_busy;
+        /**
          * LRU list, updated on each access to object. Protected by
          * bucket lock of lu_site::ls_obj_hash.
          *
@@ -1255,7 +1276,6 @@ struct lu_name {
 struct lu_buf {
         void   *lb_buf;
         ssize_t lb_len;
-        int     lb_vmalloc:1;
 };
 
 /** null buffer */