Whamcloud - gitweb
b=22464 add writeconf as mount option (includes bz 23228)
[fs/lustre-release.git] / lustre / include / lustre_disk.h
index 336045b..0915d80 100644 (file)
@@ -26,7 +26,7 @@
  * GPL HEADER END
  */
 /*
- * Copyright  2008 Sun Microsystems, Inc. All rights reserved
+ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  */
 /*
 #ifndef _LUSTRE_DISK_H
 #define _LUSTRE_DISK_H
 
+/** \defgroup disk disk
+ *
+ * @{
+ */
+
 #include <libcfs/libcfs.h>
 #include <lnet/types.h>
 
 #define LDD_F_NEED_INDEX    0x0010
 /** never registered */
 #define LDD_F_VIRGIN        0x0020
-/** update the config logs for this server*/
+/** update the config logs for this server */
 #define LDD_F_UPDATE        0x0040
 /** rewrite the LDD */
 #define LDD_F_REWRITE_LDD   0x0080
-/** regenerate all logs for this fs */
+/** regenerate config logs for this fs or server */
 #define LDD_F_WRITECONF     0x0100
 /** COMPAT_14 */
 #define LDD_F_UPGRADE14     0x0200
@@ -172,6 +177,8 @@ struct lustre_mount_data {
         __u32      lmd_flags;         /* lustre mount flags */
         int        lmd_mgs_failnodes; /* mgs failover node count */
         int        lmd_exclude_count;
+        int        lmd_recovery_time_soft;
+        int        lmd_recovery_time_hard;
         char      *lmd_dev;           /* device name */
         char      *lmd_profile;       /* client only */
         char      *lmd_mgssec;        /* sptlrpc flavor to mgs */
@@ -187,6 +194,7 @@ struct lustre_mount_data {
                                         no other services */
 #define LMD_FLG_NOMGS        0x0020  /* Only start target for servers, reusing
                                         existing MGS services */
+#define LMD_FLG_WRITECONF    0x0040  /* Rewrite config log */
 
 #define lmd_is_client(x) ((x)->lmd_flags & LMD_FLG_CLIENT)
 
@@ -197,6 +205,7 @@ struct lustre_mount_data {
 #define LR_EPOCH_BITS   32
 #define lr_epoch(a) ((a) >> LR_EPOCH_BITS)
 #define LR_EXPIRE_INTERVALS 16 /**< number of intervals to track transno */
+#define ENOENT_VERSION 1 /** 'virtual' version of non-existent object */
 
 #define LR_SERVER_SIZE   512
 #define LR_CLIENT_START 8192
@@ -217,8 +226,6 @@ struct lustre_mount_data {
 #define LR_MAX_CLIENTS (CFS_PAGE_SIZE * 8)
 #endif
 
-#define LR_CLIENT_BITMAP_SIZE ((LR_MAX_CLIENTS >> 3) / sizeof(long))
-
 /** COMPAT_146: this is an OST (temporary) */
 #define OBD_COMPAT_OST          0x00000002
 /** COMPAT_146: this is an MDT (temporary) */
@@ -428,7 +435,7 @@ struct lustre_sb_info {
         struct lustre_disk_data  *lsi_ldd;     /* mount info on-disk */
         struct ll_sb_info        *lsi_llsbi;   /* add'l client sbi info */
         struct vfsmount          *lsi_srv_mnt; /* the one server mount */
-        atomic_t                  lsi_mounts;  /* references to the srv_mnt */
+        cfs_atomic_t              lsi_mounts;  /* references to the srv_mnt */
 };
 
 #define LSI_SERVER                       0x00000001
@@ -445,10 +452,10 @@ struct lustre_sb_info {
 /****************** mount lookup info *********************/
 
 struct lustre_mount_info {
-        char               *lmi_name;
-        struct super_block *lmi_sb;
-        struct vfsmount    *lmi_mnt;
-        struct list_head    lmi_list_chain;
+        char                 *lmi_name;
+        struct super_block   *lmi_sb;
+        struct vfsmount      *lmi_mnt;
+        cfs_list_t            lmi_list_chain;
 };
 
 /****************** prototypes *********************/
@@ -461,6 +468,7 @@ void lustre_register_kill_super_cb(void (*cfs)(struct super_block *sb));
 
 
 int lustre_common_put_super(struct super_block *sb);
+struct lustre_mount_info *server_find_mount_locked(const char *name);
 struct lustre_mount_info *server_get_mount(const char *name);
 struct lustre_mount_info *server_get_mount_2(const char *name);
 int server_put_mount(const char *name, struct vfsmount *mnt);
@@ -474,4 +482,6 @@ int mgc_fsname2resid(char *fsname, struct ldlm_res_id *res_id);
 
 #endif
 
+/** @} disk */
+
 #endif // _LUSTRE_DISK_H