Whamcloud - gitweb
b=17631
[fs/lustre-release.git] / lustre / include / lustre_fid.h
index d47304d..470feae 100644 (file)
@@ -1,24 +1,41 @@
 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
  * vim:expandtab:shiftwidth=8:tabstop=8:
  *
- *  Copyright (C) 2006 Cluster File Systems, Inc.
- *   Author: Yury Umanets <umka@clusterfs.com>
+ * GPL HEADER START
  *
- *   This file is part of Lustre, http://www.lustre.org.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
- *   Lustre is free software; you can redistribute it and/or
- *   modify it under the terms of version 2 of the GNU General Public
- *   License as published by the Free Software Foundation.
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 only,
+ * as published by the Free Software Foundation.
  *
- *   Lustre is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License version 2 for more details (a copy is included
+ * in the LICENSE file that accompanied this code).
  *
- *   You should have received a copy of the GNU General Public License
- *   along with Lustre; if not, write to the Free Software
- *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * 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.
+ *
+ * GPL HEADER END
+ */
+/*
+ * Copyright  2008 Sun Microsystems, Inc. All rights reserved
+ * Use is subject to license terms.
+ */
+/*
+ * This file is part of Lustre, http://www.lustre.org/
+ * Lustre is a trademark of Sun Microsystems, Inc.
+ *
+ * lustre/include/lustre_fid.h
+ *
+ * Author: Yury Umanets <umka@clusterfs.com>
  */
 
 #ifndef __LINUX_FID_H
@@ -31,8 +48,7 @@
 #include <lustre_req_layout.h>
 #include <lustre_mdt.h>
 
-#include <libcfs/list.h>
-#include <libcfs/kp30.h>
+#include <libcfs/libcfs.h>
 
 struct lu_site;
 struct lu_context;
@@ -63,6 +79,38 @@ enum {
         LUSTRE_SEQ_SUPER_WIDTH = (LUSTRE_SEQ_META_WIDTH * LUSTRE_SEQ_META_WIDTH)
 };
 
+/** special fid seq: used for local object create. */
+#define FID_SEQ_LOCAL_FILE      (FID_SEQ_START + 1)
+
+/** special OID for local objects */
+enum {
+        /** \see osd_oi_index_create */
+        OSD_OI_FID_SMALL_OID    = 1UL,
+        OSD_OI_FID_OTHER_OID    = 2UL,
+        /** \see fld_mod_init */
+        FLD_INDEX_OID           = 3UL,
+        /** \see fid_mod_init */
+        FID_SEQ_CTL_OID         = 4UL,
+        FID_SEQ_SRV_OID         = 5UL,
+        /** \see mdd_mod_init */
+        MDD_ROOT_INDEX_OID      = 6UL,
+        MDD_ORPHAN_OID          = 7UL,
+        MDD_LOV_OBJ_OID         = 8UL,
+        MDD_CAPA_KEYS_OID       = 9UL,
+        MDD_OBJECTS_OID         = 10UL,
+        /** \see mdt_mod_init */
+        MDT_LAST_RECV_OID       = 11UL,
+        /** \see osd_mod_init */
+        OSD_REM_OBJ_DIR_OID     = 12UL,
+};
+
+static inline void lu_local_obj_fid(struct lu_fid *fid, __u32 oid)
+{
+        fid->f_seq = FID_SEQ_LOCAL_FILE;
+        fid->f_oid = oid;
+        fid->f_ver = 0;
+}
+
 enum lu_mgr_type {
         LUSTRE_SEQ_SERVER,
         LUSTRE_SEQ_CONTROLLER