Whamcloud - gitweb
LU-8648 all: remove all Sun license and URL references
[fs/lustre-release.git] / lustre / lov / lovsub_object.c
index e960cde..752a422 100644 (file)
  *
  * You should have received a copy of the GNU General Public License
  * version 2 along with this program; If not, see
- * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
+ * http://www.gnu.org/licenses/gpl-2.0.html
  *
  * GPL HEADER END
  */
@@ -27,7 +23,7 @@
  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  *
- * Copyright (c) 2012, 2013, Intel Corporation.
+ * Copyright (c) 2012, 2015, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
@@ -125,13 +121,33 @@ static int lovsub_object_glimpse(const struct lu_env *env,
         RETURN(cl_object_glimpse(env, &los->lso_super->lo_cl, lvb));
 }
 
+/**
+ * Implementation of struct cl_object_operations::coo_req_attr_set() for lovsub
+ * layer. Lov and lovsub are responsible only for struct obdo::o_stripe_idx
+ * field, which is filled there.
+ */
+static void lovsub_req_attr_set(const struct lu_env *env, struct cl_object *obj,
+                               struct cl_req_attr *attr)
+{
+       struct lovsub_object *subobj = cl2lovsub(obj);
 
+       ENTRY;
+       cl_req_attr_set(env, &subobj->lso_super->lo_cl, attr);
+
+       /*
+        * There is no OBD_MD_* flag for obdo::o_stripe_idx, so set it
+        * unconditionally. It never changes anyway.
+        */
+       attr->cra_oa->o_stripe_idx = subobj->lso_index;
+       EXIT;
+}
 
 static const struct cl_object_operations lovsub_ops = {
        .coo_page_init    = lovsub_page_init,
        .coo_lock_init    = lovsub_lock_init,
        .coo_attr_update  = lovsub_attr_update,
-       .coo_glimpse      = lovsub_object_glimpse
+       .coo_glimpse      = lovsub_object_glimpse,
+       .coo_req_attr_set = lovsub_req_attr_set
 };
 
 static const struct lu_object_operations lovsub_lu_obj_ops = {