#include <fcntl.h>
#include <sys/uio.h>
-#include <fs.h>
+#ifdef HAVE_XTIO_H
+#include <xtio.h>
+#endif
#include <sysio.h>
#include <mount.h>
#include <inode.h>
+#ifdef HAVE_FILE_H
#include <file.h>
+#endif
#undef LIST_HEAD
{
struct llu_inode_info *lli = llu_i2info(inode);
struct lov_stripe_md *lsm = lli->lli_smd;
- struct obd_export *exp = llu_i2obdexp(inode);
+ struct obd_export *exp = llu_i2dtexp(inode);
struct {
char name[16];
struct ldlm_lock *lock;
lsm = lli->lli_smd;
stripe = llu_lock_to_stripe_offset(inode, lock);
- l_lock(&lock->l_resource->lr_namespace->ns_lock);
+#warning "fix l_lock() using here!"
+// l_lock(&lock->l_resource->lr_namespace->ns_lock);
kms = ldlm_extent_shift_kms(lock,
lsm->lsm_oinfo[stripe].loi_kms);
- l_unlock(&lock->l_resource->lr_namespace->ns_lock);
+// l_unlock(&lock->l_resource->lr_namespace->ns_lock);
if (lsm->lsm_oinfo[stripe].loi_kms != kms)
LDLM_DEBUG(lock, "updating kms from "LPU64" to "LPU64,
lsm->lsm_oinfo[stripe].loi_kms, kms);
CDEBUG(D_DLMTRACE, "Glimpsing inode %lu\n", lli->lli_st_ino);
- rc = obd_enqueue(sbi->ll_lov_exp, lli->lli_smd, LDLM_EXTENT, &policy,
+ rc = obd_enqueue(sbi->ll_dt_exp, lli->lli_smd, LDLM_EXTENT, &policy,
LCK_PR, &flags, llu_extent_lock_callback,
ldlm_completion_ast, llu_glimpse_callback, inode,
sizeof(struct ost_lvb), lustre_swab_ost_lvb, &lockh);
CDEBUG(D_DLMTRACE, "glimpse: size: %llu, blocks: %lu\n",
lli->lli_st_size, lli->lli_st_blocks);
- obd_cancel(sbi->ll_lov_exp, lli->lli_smd, LCK_PR, &lockh);
+ obd_cancel(sbi->ll_dt_exp, lli->lli_smd, LCK_PR, &lockh);
RETURN(rc);
}
CDEBUG(D_DLMTRACE, "Locking inode %lu, start "LPU64" end "LPU64"\n",
lli->lli_st_ino, policy->l_extent.start, policy->l_extent.end);
- rc = obd_enqueue(sbi->ll_lov_exp, lsm, LDLM_EXTENT, policy, mode,
+ rc = obd_enqueue(sbi->ll_dt_exp, lsm, LDLM_EXTENT, policy, mode,
&ast_flags, llu_extent_lock_callback,
ldlm_completion_ast, llu_glimpse_callback, inode,
sizeof(struct ost_lvb), lustre_swab_ost_lvb, lockh);
(sbi->ll_flags & LL_SBI_NOLCK))
RETURN(0);
- rc = obd_cancel(sbi->ll_lov_exp, lsm, mode, lockh);
+ rc = obd_cancel(sbi->ll_dt_exp, lsm, mode, lockh);
RETURN(rc);
}
struct inode *llap_inode;
};
-static struct ll_async_page *llap_from_cookie(void *cookie)
-{
- struct ll_async_page *llap = cookie;
- if (llap->llap_magic != LLAP_MAGIC)
- return ERR_PTR(-EINVAL);
- return llap;
-};
-
static void llu_ap_fill_obdo(void *data, int cmd, struct obdo *oa)
{
struct ll_async_page *llap;
struct inode *inode;
struct lov_stripe_md *lsm;
- obd_flag valid_flags;
+ obd_valid valid_flags;
ENTRY;
- llap = llap_from_cookie(data);
- if (IS_ERR(llap)) {
- EXIT;
- return;
- }
-
+ llap = LLAP_FROM_COOKIE(data);
inode = llap->llap_inode;
lsm = llu_i2info(inode)->lli_smd;
struct ll_async_page *llap;
struct page *page;
- llap = llap_from_cookie(data);
- if (IS_ERR(llap)) {
- EXIT;
- return;
- }
-
+ llap = LLAP_FROM_COOKIE(data);
llap->llap_queued = 0;
page = llap->llap_page;
{
struct llu_inode_info *lli = llu_i2info(group->lig_inode);
struct lov_stripe_md *lsm = lli->lli_smd;
- struct obd_export *exp = llu_i2obdexp(group->lig_inode);
+ struct obd_export *exp = llu_i2dtexp(group->lig_inode);
struct page *pages = &group->lig_pages[group->lig_npages];
struct ll_async_page *llap = &group->lig_llap[group->lig_npages];
int i, rc, npages = 0, ret_bytes = 0;
void put_io_group(struct llu_io_group *group)
{
struct lov_stripe_md *lsm = llu_i2info(group->lig_inode)->lli_smd;
- struct obd_export *exp = llu_i2obdexp(group->lig_inode);
+ struct obd_export *exp = llu_i2dtexp(group->lig_inode);
struct ll_async_page *llap = group->lig_llap;
int i;
OBD_FREE(group, LLU_IO_GROUP_SIZE(group->lig_maxpages));
}
-void lov_increase_kms(struct obd_export *exp, struct lov_stripe_md *lsm,
- obd_off size);
-
static
ssize_t llu_file_prwv(const struct iovec *iovec, int iovlen,
_SYSIO_OFF_T pos, ssize_t len,
*/
liblustre_wait_event(0);
- exp = llu_i2obdexp(inode);
+ exp = llu_i2dtexp(inode);
if (exp == NULL)
RETURN(-EINVAL);
pos += ret;
if (!is_read) {
LASSERT(ret == count);
- lov_increase_kms(exp, lsm, pos);
+ obd_adjust_kms(exp, lsm, pos, 0);
/* file size grow immediately */
if (pos > lli->lli_st_size)
lli->lli_st_size = pos;