X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fliblustre%2Fllite_lib.h;h=9609e2761061730313d2ca63227c8f4a0e64637a;hb=f52eb69075e6757104c77766d1d67c028a4e3506;hp=44f16638321c8e9dca9bde91b89fc97000d5d901;hpb=86a153fc4d659dc2662ab5201fac86eb06a31a96;p=fs%2Flustre-release.git diff --git a/lustre/liblustre/llite_lib.h b/lustre/liblustre/llite_lib.h index 44f1663..9609e27 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, Whamcloud, Inc. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -36,6 +36,18 @@ #ifndef __LLU_H_ #define __LLU_H_ +#include +#include +#include +#ifdef HAVE_XTIO_H +#include +#endif +#include +#include +#include +#ifdef HAVE_FILE_H +#include +#endif #include #include @@ -53,8 +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) << CFS_PAGE_SHIFT) struct ll_file_data { struct obd_client_handle fd_mds_och; __u32 fd_flags; @@ -90,7 +101,6 @@ struct llu_inode_info { 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; @@ -115,9 +125,10 @@ struct llu_inode_info { int lli_st_flags; unsigned long lli_st_generation; struct cl_object *lli_clob; + /* the most recent timestamps obtained from mds */ + struct ost_lvb lli_lvb; }; - static inline struct llu_sb_info *llu_fs2sbi(struct filesys *fs) { return (struct llu_sb_info*)(fs->fs_private); @@ -128,11 +139,18 @@ static inline struct llu_inode_info *llu_i2info(struct inode *inode) return (struct llu_inode_info*)(inode->i_private); } +static inline int ll_inode_flags(struct inode *inode) +{ + return llu_i2info(inode)->lli_st_flags; +} + static inline struct intnl_stat *llu_i2stat(struct inode *inode) { return &inode->i_stbuf; } +#define ll_inode_blksize(inode) (llu_i2stat(inode)->st_blksize) + static inline struct llu_sb_info *llu_i2sbi(struct inode *inode) { return llu_i2info(inode)->lli_sbi; @@ -227,7 +245,6 @@ extern struct mount_option_s mount_option; /* super.c */ void llu_update_inode(struct inode *inode, struct lustre_md *md); void obdo_to_inode(struct inode *dst, struct obdo *src, obd_flag valid); -void obdo_from_inode(struct obdo *dst, struct inode *src, obd_flag valid); int ll_it_open_error(int phase, struct lookup_intent *it); struct inode *llu_iget(struct filesys *fs, struct lustre_md *md); int llu_inode_getattr(struct inode *inode, struct obdo *obdo, @@ -243,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); @@ -352,8 +368,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); @@ -387,6 +401,12 @@ 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 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, int lsmlock) { } @@ -410,4 +430,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