X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flu_target.h;h=7773160d455079e50c2923088fc9483b8173f94e;hb=60e052d06f7f82e13fc551b96d1ca7585ac505df;hp=aae74e9d32d2f5b12f34e39049640bfa7f3a2390;hpb=033480704626652b36490a50a6359e74c1490690;p=fs%2Flustre-release.git diff --git a/lustre/include/lu_target.h b/lustre/include/lu_target.h index aae74e9..7773160 100644 --- a/lustre/include/lu_target.h +++ b/lustre/include/lu_target.h @@ -1,6 +1,4 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * +/* * GPL HEADER START * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -26,8 +24,10 @@ * GPL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved + * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. + * + * Copyright (c) 2011, Whamcloud, Inc. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -52,15 +52,11 @@ struct lu_target { /** Server last transaction number */ __u64 lut_last_transno; /** Lock protecting last transaction number */ - spinlock_t lut_translock; + cfs_spinlock_t lut_translock; /** Lock protecting client bitmap */ - spinlock_t lut_client_bitmap_lock; + cfs_spinlock_t lut_client_bitmap_lock; /** Bitmap of known clients */ - unsigned long lut_client_bitmap[LR_CLIENT_BITMAP_SIZE]; - /** Number of mounts */ - __u64 lut_mount_count; - __u32 lut_stale_export_age; - spinlock_t lut_trans_table_lock; + unsigned long *lut_client_bitmap; }; typedef void (*lut_cb_t)(struct lu_target *lut, __u64 transno, @@ -70,11 +66,26 @@ struct lut_commit_cb { void *lut_cb_data; }; -void lut_boot_epoch_update(struct lu_target *); -void lut_cb_last_committed(struct lu_target *, __u64, void *, int); -void lut_cb_client(struct lu_target *, __u64, void *, int); -int lut_init(const struct lu_env *, struct lu_target *, - struct obd_device *, struct dt_device *); -void lut_fini(const struct lu_env *, struct lu_target *); +void lut_boot_epoch_update(struct lu_target *lut); +int lut_last_commit_cb_add(struct thandle *th, struct lu_target *lut, + struct obd_export *exp, __u64 transno); +int lut_new_client_cb_add(struct thandle *th, struct obd_export *exp); +int lut_init(const struct lu_env *env, struct lu_target *lut, + struct obd_device *obd, struct dt_device *dt); +void lut_fini(const struct lu_env *env, struct lu_target *lut); +int lut_client_alloc(struct obd_export *exp); +void lut_client_free(struct obd_export *exp); +int lut_client_del(const struct lu_env *env, struct obd_export *exp); +int lut_client_add(const struct lu_env *env, struct obd_export *exp, int); +int lut_client_new(const struct lu_env *env, struct obd_export *exp); +int lut_client_data_read(const struct lu_env *env, struct lu_target *tg, + struct lsd_client_data *lcd, loff_t *off, int index); +int lut_client_data_write(const struct lu_env *env, struct lu_target *tg, + struct lsd_client_data *lcd, loff_t *off, struct thandle *th); +int lut_server_data_read(const struct lu_env *env, struct lu_target *tg); +int lut_server_data_write(const struct lu_env *env, struct lu_target *tg, + struct thandle *th); +int lut_server_data_update(const struct lu_env *env, struct lu_target *tg, int sync); +int lut_truncate_last_rcvd(const struct lu_env *env, struct lu_target *tg, loff_t off); #endif /* __LUSTRE_LU_TARGET_H */