struct semaphore ll_gns_sem;
spinlock_t ll_gns_lock;
wait_queue_head_t ll_gns_waitq;
+ atomic_t ll_gns_enabled;
int ll_gns_state;
struct timer_list ll_gns_timer;
struct list_head ll_gns_sbi_head;
+ struct completion ll_gns_mount_finished;
+ struct dentry *ll_gns_pending_dentry;
unsigned long ll_gns_tick;
unsigned long ll_gns_timeout;
#define LL_GNS_IDLE (1 << 0)
#define LL_GNS_MOUNTING (1 << 1)
#define LL_GNS_FINISHED (1 << 2)
-#define LL_GNS_DISABLED (1 << 3)
/* mounts checking flags */
#define LL_GNS_UMOUNT (1 << 0)
struct inode *ll_iget(struct super_block *sb, ino_t hash,
struct lustre_md *lic);
struct dentry *ll_find_alias(struct inode *, struct dentry *);
-int ll_mdc_cancel_unused(struct lustre_handle *, struct inode *, int flags,
- void *opaque);
int ll_mdc_blocking_ast(struct ldlm_lock *, struct ldlm_lock_desc *,
void *data, int flag);
/* llite/rw.c */
char *ll_read_opt(const char *opt, char *data);
int ll_set_opt(const char *opt, char *data, int fl);
-void ll_options(char *options, char **ost, char **mds, char **sec,
- int *async, int *flags);
+void ll_options(char *options, char **ost, char **mds, char **mds_sec,
+ char **oss_sec, int *async, int *flags);
void ll_lli_init(struct ll_inode_info *lli);
int ll_fill_super(struct super_block *sb, void *data, int silent);
int lustre_fill_super(struct super_block *sb, void *data, int silent);
data->mod_time = LTIME_S(CURRENT_TIME);
}
+#if 0
+/*
+ * this was needed for catching correct calling place of ll_intent_alloc() with
+ * missed ll_intent_free() causing memory leak. --umka
+ */
+#define ll_intent_alloc(it) \
+ ({ \
+ int err; \
+ OBD_SLAB_ALLOC((it)->d.fs_data, ll_intent_slab, SLAB_KERNEL, \
+ sizeof(struct lustre_intent_data)); \
+ if (!(it)->d.fs_data) { \
+ err = -ENOMEM; \
+ } else { \
+ err = 0; \
+ } \
+ (it)->it_op_release = ll_intent_release; \
+ err; \
+ })
+
+#define ll_intent_free(it) \
+ do { \
+ if ((it)->d.fs_data) { \
+ OBD_SLAB_FREE((it)->d.fs_data, ll_intent_slab, \
+ sizeof(struct lustre_intent_data)); \
+ (it)->d.fs_data = NULL; \
+ } \
+ } while (0)
+#endif
+
#endif /* LLITE_INTERNAL_H */