X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flu_object.h;h=f431e0b4a5d2c3bc985f35c29c4e759def937c94;hb=e4872648bfaea1795133f10695c40e0fd3069831;hp=10df8033236101845706ef0b729ba2e225e302e3;hpb=cec72a356891eaa729314a7bc89c4b2aaef0a31b;p=fs%2Flustre-release.git diff --git a/lustre/include/lu_object.h b/lustre/include/lu_object.h index 10df803..f431e0b 100644 --- a/lustre/include/lu_object.h +++ b/lustre/include/lu_object.h @@ -30,6 +30,9 @@ * Use is subject to license terms. */ /* + * Copyright (c) 2011 Whamcloud, Inc. + */ +/* * This file is part of Lustre, http://www.lustre.org/ * Lustre is a trademark of Sun Microsystems, Inc. */ @@ -169,11 +172,23 @@ struct lu_device_operations { }; /** + * For lu_object_conf flags + */ +typedef enum { + /* Currently, only used for client-side object initialization. */ + LOC_F_NEW = 0x1, +} loc_flags_t; + +/** * Object configuration, describing particulars of object being created. On * server this is not used, as server objects are full identified by fid. On * client configuration contains struct lustre_md. */ struct lu_object_conf { + /** + * Some hints for obj find and alloc. + */ + loc_flags_t loc_flags; }; /** @@ -278,6 +293,10 @@ struct lu_device { * A list of references to this object, for debugging. */ struct lu_ref ld_reference; + /** + * Link the device to the site. + **/ + cfs_list_t ld_linkage; }; struct lu_device_type_operations; @@ -445,6 +464,8 @@ enum la_valid { LA_NLINK = 1 << 10, LA_RDEV = 1 << 11, LA_BLKSIZE = 1 << 12, + LA_KILL_SUID = 1 << 13, + LA_KILL_SGID = 1 << 14, }; /** @@ -614,6 +635,13 @@ struct lu_site { */ cfs_list_t ls_linkage; /** + * List for lu device for this site, protected + * by ls_ld_lock. + **/ + cfs_list_t ls_ld_linkage; + cfs_spinlock_t ls_ld_lock; + + /** * lu_site stats */ struct lprocfs_stats *ls_stats; @@ -815,6 +843,7 @@ int lu_object_invariant(const struct lu_object *o); /** * \retval 1 iff object \a o exists on stable storage, + * \retval 0 iff object \a o not exists on stable storage. * \retval -1 iff object \a o is on remote server. */ static inline int lu_object_exists(const struct lu_object *o)