Whamcloud - gitweb
- landed b_hd_cray_merge3
[fs/lustre-release.git] / lustre / liblustre / rw.c
index 8c4c686..c6f4bd0 100644 (file)
 #include <fcntl.h>
 #include <sys/uio.h>
 
+#ifdef HAVE_XTIO_H
 #include <xtio.h>
+#endif
 #include <sysio.h>
-#include <fs.h>
 #include <mount.h>
 #include <inode.h>
+#ifdef HAVE_FILE_H
 #include <file.h>
+#endif
 
 #undef LIST_HEAD
 
@@ -79,7 +82,7 @@ static int llu_lock_to_stripe_offset(struct inode *inode, struct ldlm_lock *lock
 {
         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;
@@ -224,7 +227,7 @@ int llu_glimpse_size(struct inode *inode)
 
         CDEBUG(D_DLMTRACE, "Glimpsing inode %lu\n", lli->lli_st_ino);
 
-        rc = obd_enqueue(sbi->ll_osc_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);
@@ -240,7 +243,7 @@ int llu_glimpse_size(struct inode *inode)
         CDEBUG(D_DLMTRACE, "glimpse: size: %llu, blocks: %lu\n",
                lli->lli_st_size, lli->lli_st_blocks);
 
-        obd_cancel(sbi->ll_osc_exp, lli->lli_smd, LCK_PR, &lockh);
+        obd_cancel(sbi->ll_dt_exp, lli->lli_smd, LCK_PR, &lockh);
 
         RETURN(rc);
 }
@@ -265,7 +268,7 @@ int llu_extent_lock(struct ll_file_data *fd, struct inode *inode,
         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_osc_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);
@@ -294,7 +297,7 @@ int llu_extent_unlock(struct ll_file_data *fd, struct inode *inode,
             (sbi->ll_flags & LL_SBI_NOLCK))
                 RETURN(0);
 
-        rc = obd_cancel(sbi->ll_osc_exp, lsm, mode, lockh);
+        rc = obd_cancel(sbi->ll_dt_exp, lsm, mode, lockh);
 
         RETURN(rc);
 }
@@ -309,28 +312,15 @@ struct ll_async_page {
         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;
 
@@ -350,12 +340,7 @@ static void llu_ap_completion(void *data, int cmd, struct obdo *oa, int rc)
         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;
 
@@ -379,7 +364,7 @@ static int llu_queue_pio(int cmd, struct llu_io_group *group,
 {
         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;
@@ -492,7 +477,7 @@ static
 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;
 
@@ -508,9 +493,6 @@ void put_io_group(struct llu_io_group *group)
         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,
@@ -536,7 +518,7 @@ ssize_t llu_file_prwv(const struct iovec *iovec, int iovlen,
          */
         liblustre_wait_event(0);
 
-        exp = llu_i2obdexp(inode);
+        exp = llu_i2dtexp(inode);
         if (exp == NULL)
                 RETURN(-EINVAL);
 
@@ -619,7 +601,7 @@ ssize_t llu_file_prwv(const struct iovec *iovec, int iovlen,
                         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;