X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fliblustre%2Fllite_lib.h;h=2b427c38100997fa70ad95c7b708dd6194090706;hb=9ec520b7e8a1858266c747f8501b347385914d3f;hp=55675c02d75668751b1c1dd55c57163b072e28f5;hpb=b7d606cf751378a25c270fa7fa3f3dc56066be13;p=fs%2Flustre-release.git diff --git a/lustre/liblustre/llite_lib.h b/lustre/liblustre/llite_lib.h index 55675c0..2b427c3 100644 --- a/lustre/liblustre/llite_lib.h +++ b/lustre/liblustre/llite_lib.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. @@ -28,6 +26,8 @@ /* * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. + * + * Copyright (c) 2012, 2013, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -65,7 +65,7 @@ /* This should not be "optimized" use ~0ULL because page->index is a long and * 32-bit systems are therefore limited to 16TB in a mapping */ -#define PAGE_CACHE_MAXBYTES ((__u64)(~0UL) << CFS_PAGE_SHIFT) +#define MAX_LFS_FILESIZE ((__u64)(~0UL) << PAGE_CACHE_SHIFT) struct ll_file_data { struct obd_client_handle fd_mds_och; __u32 fd_flags; @@ -99,9 +99,7 @@ struct llu_inode_info { struct llu_sb_info *lli_sbi; struct lu_fid lli_fid; - struct lov_stripe_md *lli_smd; char *lli_symlink_name; - cfs_semaphore_t lli_open_sem; __u64 lli_maxbytes; unsigned long lli_flags; __u64 lli_ioepoch; @@ -119,6 +117,9 @@ struct llu_inode_info { * was opened several times without close, we track an * open_count here */ struct ll_file_data *lli_file_data; + /* checking lli_has_smd is reliable only inside an IO + * i.e, lov stripe has been held. */ + bool lli_has_smd; int lli_open_flags; int lli_open_count; @@ -218,8 +219,6 @@ void ll_i2gids(__u32 *suppgids, struct inode *i1,struct inode *i2); typedef int (*intent_finish_cb)(struct ptlrpc_request *, struct inode *parent, struct pnode *pnode, struct lookup_intent *, int offset, obd_id ino); -int llu_intent_lock(struct inode *parent, struct pnode *pnode, - struct lookup_intent *, int flags, intent_finish_cb); static inline __u64 ll_file_maxbytes(struct inode *inode) { @@ -296,6 +295,7 @@ int llu_iop_lookup(struct pnode *pnode, struct intent *intnt, const char *path); void unhook_stale_inode(struct pnode *pno); +struct inode *llu_inode_from_resource_lock(struct ldlm_lock *lock); struct inode *llu_inode_from_lock(struct ldlm_lock *lock); int llu_md_blocking_ast(struct ldlm_lock *lock, struct ldlm_lock_desc *desc, @@ -330,7 +330,7 @@ static inline struct ext2_dirent *ext2_next_entry(struct ext2_dirent *p) return (struct ext2_dirent*)((char*) p + le16_to_cpu(p->rec_len)); } -int llu_merge_lvb(struct inode *inode); +int llu_merge_lvb(const struct lu_env *env, struct inode *inode); static inline void inode_init_lvb(struct inode *inode, struct ost_lvb *lvb) { @@ -345,7 +345,7 @@ static inline void inode_init_lvb(struct inode *inode, struct ost_lvb *lvb) #define LLU_IO_GROUP_SIZE(x) \ (sizeof(struct llu_io_group) + \ (sizeof(struct ll_async_page) + \ - sizeof(cfs_page_t) + \ + sizeof(struct page) + \ llap_cookie_size) * (x)) struct llu_io_session { @@ -402,17 +402,23 @@ static inline struct slp_io *slp_env_io(const struct lu_env *env) #define cl_isize_write(inode,kms) do{llu_i2stat(inode)->st_size = kms;}while(0) #define cl_isize_write_nolock(inode,kms) cl_isize_write(inode,kms) -static inline void cl_isize_lock(struct inode *inode, int lsmlock) +static inline struct ll_file_data *cl_iattr2fd(struct inode *inode, + const struct iattr *attr) +{ + return llu_i2info(inode)->lli_file_data; +} + +static inline void cl_isize_lock(struct inode *inode) { } -static inline void cl_isize_unlock(struct inode *inode, int lsmlock) +static inline void cl_isize_unlock(struct inode *inode) { } -static inline int cl_merge_lvb(struct inode *inode) +static inline int cl_merge_lvb(const struct lu_env *env, struct inode *inode) { - return llu_merge_lvb(inode); + return llu_merge_lvb(env, inode); } #define cl_inode_atime(inode) (llu_i2stat(inode)->st_atime)