diff options
Diffstat (limited to 'drivers/staging/lustre/lustre/llite/dir.c')
-rw-r--r-- | drivers/staging/lustre/lustre/llite/dir.c | 96 |
1 files changed, 17 insertions, 79 deletions
diff --git a/drivers/staging/lustre/lustre/llite/dir.c b/drivers/staging/lustre/lustre/llite/dir.c index a79fd65ec4c6..407718a0026f 100644 --- a/drivers/staging/lustre/lustre/llite/dir.c +++ b/drivers/staging/lustre/lustre/llite/dir.c @@ -163,7 +163,7 @@ static int ll_dir_filler(void *_hash, struct page *page0) LASSERT(max_pages > 0 && max_pages <= MD_MAX_BRW_PAGES); - page_pool = kzalloc(sizeof(page) * max_pages, GFP_NOFS); + page_pool = kcalloc(max_pages, sizeof(page), GFP_NOFS); if (page_pool) { page_pool[0] = page0; } else { @@ -228,8 +228,8 @@ static int ll_dir_filler(void *_hash, struct page *page0) if (ll_pagevec_add(&lru_pvec, page) == 0) ll_pagevec_lru_add_file(&lru_pvec); } else { - CDEBUG(D_VFSTRACE, "page %lu add to page cache failed:" - " %d\n", offset, ret); + CDEBUG(D_VFSTRACE, "page %lu add to page cache failed: %d\n", + offset, ret); } page_cache_release(page); } @@ -275,14 +275,14 @@ static struct page *ll_dir_page_locate(struct inode *dir, __u64 *hash, struct page *page; int found; - TREE_READ_LOCK_IRQ(mapping); + spin_lock_irq(&mapping->tree_lock); found = radix_tree_gang_lookup(&mapping->page_tree, (void **)&page, offset, 1); if (found > 0) { struct lu_dirpage *dp; page_cache_get(page); - TREE_READ_UNLOCK_IRQ(mapping); + spin_unlock_irq(&mapping->tree_lock); /* * In contrast to find_lock_page() we are sure that directory * page cannot be truncated (while DLM lock is held) and, @@ -326,7 +326,7 @@ static struct page *ll_dir_page_locate(struct inode *dir, __u64 *hash, } } else { - TREE_READ_UNLOCK_IRQ(mapping); + spin_unlock_irq(&mapping->tree_lock); page = NULL; } return page; @@ -600,8 +600,8 @@ static int ll_readdir(struct file *filp, struct dir_context *ctx) int api32 = ll_need_32bit_api(sbi); int rc; - CDEBUG(D_VFSTRACE, "VFS Op:inode=%lu/%u(%p) pos %lu/%llu " - " 32bit_api %d\n", inode->i_ino, inode->i_generation, + CDEBUG(D_VFSTRACE, "VFS Op:inode=%lu/%u(%p) pos %lu/%llu 32bit_api %d\n", + inode->i_ino, inode->i_generation, inode, (unsigned long)lfd->lfd_pos, i_size_read(inode), api32); if (lfd->lfd_pos == MDS_DIR_END_OFF) { @@ -715,10 +715,9 @@ int ll_dir_setstripe(struct inode *inode, struct lov_user_md *lump, break; } default: { - CDEBUG(D_IOCTL, "bad userland LOV MAGIC:" - " %#08x != %#08x nor %#08x\n", - lump->lmm_magic, LOV_USER_MAGIC_V1, - LOV_USER_MAGIC_V3); + CDEBUG(D_IOCTL, "bad userland LOV MAGIC: %#08x != %#08x nor %#08x\n", + lump->lmm_magic, LOV_USER_MAGIC_V1, + LOV_USER_MAGIC_V3); return -EINVAL; } } @@ -814,8 +813,8 @@ int ll_dir_getstripe(struct inode *inode, struct lov_mds_md **lmmp, rc = md_getattr(sbi->ll_md_exp, op_data, &req); ll_finish_md_op_data(op_data); if (rc < 0) { - CDEBUG(D_INFO, "md_getattr failed on inode " - "%lu/%u: rc %d\n", inode->i_ino, + CDEBUG(D_INFO, "md_getattr failed on inode %lu/%u: rc %d\n", + inode->i_ino, inode->i_generation, rc); goto out; } @@ -1013,8 +1012,7 @@ static int ll_ioc_copy_end(struct super_block *sb, struct hsm_copy *copy) copy->hc_hai.hai_action == HSMA_ARCHIVE); iput(inode); if (rc) { - CDEBUG(D_HSM, "Could not read file data version. " - "Request could not be confirmed.\n"); + CDEBUG(D_HSM, "Could not read file data version. Request could not be confirmed.\n"); if (hpk.hpk_errval == 0) hpk.hpk_errval = -rc; goto progress; @@ -1028,8 +1026,7 @@ static int ll_ioc_copy_end(struct super_block *sb, struct hsm_copy *copy) * to check anyway. */ if ((copy->hc_hai.hai_action == HSMA_ARCHIVE) && (copy->hc_data_version != data_version)) { - CDEBUG(D_HSM, "File data version mismatched. " - "File content was changed during archiving. " + CDEBUG(D_HSM, "File data version mismatched. File content was changed during archiving. " DFID", start:%#llx current:%#llx\n", PFID(©->hc_hai.hai_fid), copy->hc_data_version, data_version); @@ -1384,7 +1381,7 @@ lmv_out_free: if (copy_from_user(lumv1, lumv1p, sizeof(*lumv1))) return -EFAULT; - if ((lumv1->lmm_magic == LOV_USER_MAGIC_V3) ) { + if (lumv1->lmm_magic == LOV_USER_MAGIC_V3) { if (copy_from_user(&lumv3, lumv3p, sizeof(lumv3))) return -EFAULT; } @@ -1509,8 +1506,7 @@ out_rmdir: cmd == LL_IOC_MDC_GETINFO)) { rc = 0; goto skip_lmm; - } - else + } else goto out_req; } @@ -1694,64 +1690,6 @@ out_poll: OBD_FREE_PTR(check); return rc; } -#if LUSTRE_VERSION_CODE < OBD_OCD_VERSION(2, 7, 50, 0) - case LL_IOC_QUOTACTL_18: { - /* copy the old 1.x quota struct for internal use, then copy - * back into old format struct. For 1.8 compatibility. */ - struct if_quotactl_18 *qctl_18; - struct if_quotactl *qctl_20; - - qctl_18 = kzalloc(sizeof(*qctl_18), GFP_NOFS); - if (!qctl_18) - return -ENOMEM; - - qctl_20 = kzalloc(sizeof(*qctl_20), GFP_NOFS); - if (!qctl_20) { - rc = -ENOMEM; - goto out_quotactl_18; - } - - if (copy_from_user(qctl_18, (void *)arg, sizeof(*qctl_18))) { - rc = -ENOMEM; - goto out_quotactl_20; - } - - QCTL_COPY(qctl_20, qctl_18); - qctl_20->qc_idx = 0; - - /* XXX: dqb_valid was borrowed as a flag to mark that - * only mds quota is wanted */ - if (qctl_18->qc_cmd == Q_GETQUOTA && - qctl_18->qc_dqblk.dqb_valid) { - qctl_20->qc_valid = QC_MDTIDX; - qctl_20->qc_dqblk.dqb_valid = 0; - } else if (qctl_18->obd_uuid.uuid[0] != '\0') { - qctl_20->qc_valid = QC_UUID; - qctl_20->obd_uuid = qctl_18->obd_uuid; - } else { - qctl_20->qc_valid = QC_GENERAL; - } - - rc = quotactl_ioctl(sbi, qctl_20); - - if (rc == 0) { - QCTL_COPY(qctl_18, qctl_20); - qctl_18->obd_uuid = qctl_20->obd_uuid; - - if (copy_to_user((void *)arg, qctl_18, - sizeof(*qctl_18))) - rc = -EFAULT; - } - -out_quotactl_20: - OBD_FREE_PTR(qctl_20); -out_quotactl_18: - OBD_FREE_PTR(qctl_18); - return rc; - } -#else -#warning "remove old LL_IOC_QUOTACTL_18 compatibility code" -#endif /* LUSTRE_VERSION_CODE < OBD_OCD_VERSION(2, 7, 50, 0) */ case LL_IOC_QUOTACTL: { struct if_quotactl *qctl; |