Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5eade31e authored by Oleg Drokin's avatar Oleg Drokin Committed by Greg Kroah-Hartman
Browse files

staging/lustre: Remove server data from struct obd_export



Despite it's name struct obd_export could exist on the client too
(used for reverse exports), but all the actual server bits
are not needed there, so could be dropped. This is mostly
various target-related stuff.

Signed-off-by: default avatarOleg Drokin <green@linuxhacker.ru>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9a18e0a8
Loading
Loading
Loading
Loading
+0 −70
Original line number Diff line number Diff line
@@ -50,62 +50,6 @@
#include "lustre/lustre_idl.h"
#include "lustre_dlm.h"

struct mds_client_data;
struct mdt_client_data;
struct mds_idmap_table;
struct mdt_idmap_table;

/**
 * Target-specific export data
 */
struct tg_export_data {
	/** Protects led_lcd below */
	struct mutex		ted_lcd_lock;
	/** Per-client data for each export */
	struct lsd_client_data	*ted_lcd;
	/** Offset of record in last_rcvd file */
	loff_t			ted_lr_off;
	/** Client index in last_rcvd file */
	int			ted_lr_idx;
};

/**
 * MDT-specific export data
 */
struct mdt_export_data {
	struct tg_export_data	med_ted;
	/** List of all files opened by client on this MDT */
	struct list_head		med_open_head;
	spinlock_t		med_open_lock; /* med_open_head, mfd_list */
	/** Bitmask of all ibit locks this MDT understands */
	__u64			med_ibits_known;
	struct mutex		med_idmap_mutex;
	struct lustre_idmap_table *med_idmap;
};

struct ec_export_data { /* echo client */
	struct list_head eced_locks;
};

/* In-memory access to client data from OST struct */
/** Filter (oss-side) specific import data */
struct filter_export_data {
	struct tg_export_data	fed_ted;
	spinlock_t		fed_lock;	/**< protects fed_mod_list */
	long		       fed_dirty;    /* in bytes */
	long		       fed_grant;    /* in bytes */
	struct list_head		 fed_mod_list; /* files being modified */
	int			fed_mod_count;/* items in fed_writing list */
	long		       fed_pending;  /* bytes just being written */
	__u32		      fed_group;
	__u8		       fed_pagesize; /* log2 of client page size */
};

struct mgs_export_data {
	struct list_head		med_clients;	/* mgc fs client via this exp */
	spinlock_t		med_lock;	/* protect med_clients */
};

enum obd_option {
	OBD_OPT_FORCE =	 0x0001,
	OBD_OPT_FAILOVER =      0x0002,
@@ -200,22 +144,8 @@ struct obd_export {
	/** blocking dlm lock list, protected by exp_bl_list_lock */
	struct list_head		exp_bl_list;
	spinlock_t		  exp_bl_list_lock;

	/** Target specific data */
	union {
		struct tg_export_data     eu_target_data;
		struct mdt_export_data    eu_mdt_data;
		struct filter_export_data eu_filter_data;
		struct ec_export_data     eu_ec_data;
		struct mgs_export_data    eu_mgs_data;
	} u;
};

#define exp_target_data u.eu_target_data
#define exp_mdt_data    u.eu_mdt_data
#define exp_filter_data u.eu_filter_data
#define exp_ec_data     u.eu_ec_data

static inline __u64 *exp_connect_flags_ptr(struct obd_export *exp)
{
	return &exp->exp_connect_data.ocd_connect_flags;