Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-650 Max possible file size is mutable
[fs/lustre-release.git]
/
lustre
/
include
/
lclient.h
diff --git
a/lustre/include/lclient.h
b/lustre/include/lclient.h
index
4886479
..
87361eb
100644
(file)
--- a/
lustre/include/lclient.h
+++ b/
lustre/include/lclient.h
@@
-26,7
+26,7
@@
* GPL HEADER END
*/
/*
* GPL HEADER END
*/
/*
- * Copyright
2008 Sun Microsystems, Inc.
All rights reserved.
+ * Copyright
(c) 2008, 2010, Oracle and/or its affiliates.
All rights reserved.
* Use is subject to license terms.
*/
/*
* Use is subject to license terms.
*/
/*
@@
-48,15
+48,15
@@
int cl_glimpse_lock(const struct lu_env *env, struct cl_io *io,
struct inode *inode, struct cl_object *clob);
/**
struct inode *inode, struct cl_object *clob);
/**
- * Locking policy for
truncate
.
+ * Locking policy for
setattr
.
*/
*/
-enum ccc_
trunc
_lock_type {
+enum ccc_
setattr
_lock_type {
/** Locking is done by server */
/** Locking is done by server */
-
TRUNC
_NOLOCK,
+
SETATTR
_NOLOCK,
/** Extent lock is enqueued */
/** Extent lock is enqueued */
-
TRUNC_EXTENT
,
+
SETATTR_EXTENT_LOCK
,
/** Existing local extent lock is used */
/** Existing local extent lock is used */
- TRUNC_MATCH
+ SETATTR_MATCH_LOCK
};
};
@@
-87,9
+87,9
@@
struct ccc_io {
union {
struct {
union {
struct {
- int cui_locks_released;
- enum ccc_
trunc
_lock_type cui_local_lock;
- }
trunc
;
+ int
cui_locks_released;
+ enum ccc_
setattr
_lock_type cui_local_lock;
+ }
setattr
;
} u;
/**
* True iff io is processing glimpse right now.
} u;
/**
* True iff io is processing glimpse right now.
@@
-135,6
+135,13
@@
static inline struct cl_attr *ccc_env_thread_attr(const struct lu_env *env)
return attr;
}
return attr;
}
+static inline struct cl_io *ccc_env_thread_io(const struct lu_env *env)
+{
+ struct cl_io *io = &ccc_env_info(env)->cti_io;
+ memset(io, 0, sizeof(*io));
+ return io;
+}
+
struct ccc_session {
struct ccc_io cs_ios;
};
struct ccc_session {
struct ccc_io cs_ios;
};
@@
-167,7
+174,7
@@
struct ccc_object {
*
* \see ccc_page::cpg_pending_linkage
*/
*
* \see ccc_page::cpg_pending_linkage
*/
-
struct list_head
cob_pending_list;
+
cfs_list_t
cob_pending_list;
/**
* Access this counter is protected by inode->i_sem. Now that
/**
* Access this counter is protected by inode->i_sem. Now that
@@
-180,7
+187,7
@@
struct ccc_object {
*
* \see ll_vm_open(), ll_vm_close().
*/
*
* \see ll_vm_open(), ll_vm_close().
*/
-
atomic_t
cob_mmap_cnt;
+
cfs_atomic_t
cob_mmap_cnt;
};
/**
};
/**
@@
-198,7
+205,7
@@
struct ccc_page {
* that is, never iterated through, only checked for list_empty(), but
* having a list is useful for debugging.
*/
* that is, never iterated through, only checked for list_empty(), but
* having a list is useful for debugging.
*/
-
struct list_head
cpg_pending_linkage;
+
cfs_list_t
cpg_pending_linkage;
/** VM page */
cfs_page_t *cpg_page;
};
/** VM page */
cfs_page_t *cpg_page;
};
@@
-344,9
+351,8
@@
cfs_page_t *cl2vm_page (const struct cl_page_slice *slice);
struct inode *ccc_object_inode(const struct cl_object *obj);
struct ccc_object *cl_inode2ccc (struct inode *inode);
struct inode *ccc_object_inode(const struct cl_object *obj);
struct ccc_object *cl_inode2ccc (struct inode *inode);
-int cl_setattr_do_truncate(struct inode *inode, loff_t size,
- struct obd_capa *capa);
-int cl_setattr_ost(struct inode *inode, struct obd_capa *capa);
+int cl_setattr_ost(struct inode *inode, const struct iattr *attr,
+ struct obd_capa *capa);
struct cl_page *ccc_vmpage_page_transient(cfs_page_t *vmpage);
int ccc_object_invariant(const struct cl_object *obj);
struct cl_page *ccc_vmpage_page_transient(cfs_page_t *vmpage);
int ccc_object_invariant(const struct cl_object *obj);
@@
-355,7
+361,7
@@
void cl_inode_fini(struct inode *inode);
int cl_local_size(struct inode *inode);
__u16 ll_dirent_type_get(struct lu_dirent *ent);
int cl_local_size(struct inode *inode);
__u16 ll_dirent_type_get(struct lu_dirent *ent);
-
ino_t cl_fid_build_ino(const struct lu_fid *fid
);
+
__u64 cl_fid_build_ino(const struct lu_fid *fid, int api32
);
__u32 cl_fid_build_gen(const struct lu_fid *fid);
#ifdef INVARIANT_CHECK
__u32 cl_fid_build_gen(const struct lu_fid *fid);
#ifdef INVARIANT_CHECK
@@
-378,6
+384,7
@@
int cl_ocd_update(struct obd_device *host,
struct ccc_grouplock {
struct lu_env *cg_env;
struct ccc_grouplock {
struct lu_env *cg_env;
+ struct cl_io *cg_io;
struct cl_lock *cg_lock;
unsigned long cg_gid;
};
struct cl_lock *cg_lock;
unsigned long cg_gid;
};