X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fliblustre%2Fllite_lib.h;h=2b427c38100997fa70ad95c7b708dd6194090706;hb=93fe562c5dd3829939e3bc0533918f66b19776a4;hp=5fd0dc451f8a4a45bb0965b7d4e80061adae34ca;hpb=4c01e64e0a72c1682ebf0a8bd4cccf99fd04cd88;p=fs%2Flustre-release.git diff --git a/lustre/liblustre/llite_lib.h b/lustre/liblustre/llite_lib.h index 5fd0dc4..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. @@ -26,8 +24,10 @@ * GPL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved + * 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) { @@ -261,7 +260,6 @@ extern struct fssw_ops llu_fssw_ops; void llu_prep_md_op_data(struct md_op_data *op_data, struct inode *i1, struct inode *i2, const char *name, int namelen, int mode, __u32 opc); -void llu_finish_md_op_data(struct md_op_data *op_data); int llu_create(struct inode *dir, struct pnode_base *pnode, int mode); int llu_local_open(struct llu_inode_info *lli, struct lookup_intent *it); int llu_iop_open(struct pnode *pnode, int flags, mode_t mode); @@ -297,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, @@ -331,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) { @@ -346,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 { @@ -370,8 +369,6 @@ void put_io_group(struct llu_io_group *group); int cl_sb_init(struct llu_sb_info *sbi); int cl_sb_fini(struct llu_sb_info *sbi); -int cl_inode_init(struct inode *inode, struct lustre_md *md); -void cl_inode_fini(struct inode *inode); void llu_io_init(struct cl_io *io, struct inode *inode, int write); @@ -405,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_unlock(struct inode *inode, int lsmlock) +static inline void cl_isize_lock(struct inode *inode) { } -static inline int cl_merge_lvb(struct inode *inode) +static inline void cl_isize_unlock(struct inode *inode) { - return llu_merge_lvb(inode); +} + +static inline int cl_merge_lvb(const struct lu_env *env, struct inode *inode) +{ + return llu_merge_lvb(env, inode); } #define cl_inode_atime(inode) (llu_i2stat(inode)->st_atime) @@ -428,4 +431,18 @@ static inline struct obd_capa *cl_capa_lookup(struct inode *inode, return NULL; } +static inline void cl_stats_tally(struct cl_device *dev, enum cl_req_type crt, + int rc) +{ +} + +static inline loff_t i_size_read(struct inode *inode) +{ + return inode->i_stbuf.st_size; +} + +static inline void i_size_write(struct inode *inode, loff_t i_sz) +{ + inode->i_stbuf.st_size = i_sz; +} #endif