Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
LU-6142 llite: use %pd to report dentry names.
[fs/lustre-release.git]
/
lustre
/
llite
/
pcc.c
diff --git
a/lustre/llite/pcc.c
b/lustre/llite/pcc.c
index
9e5be20
..
70e6bfc
100644
(file)
--- a/
lustre/llite/pcc.c
+++ b/
lustre/llite/pcc.c
@@
-214,13
+214,13
@@
pcc_fname_list_add(struct cfs_lstr *id, struct list_head *fname_list)
{
struct pcc_match_fname *fname;
- OBD_ALLOC
(fname, sizeof(struct pcc_match_fname)
);
+ OBD_ALLOC
_PTR(fname
);
if (fname == NULL)
return -ENOMEM;
OBD_ALLOC(fname->pmf_name, id->ls_len + 1);
if (fname->pmf_name == NULL) {
- OBD_FREE
(fname, sizeof(struct pcc_match_fname)
);
+ OBD_FREE
_PTR(fname
);
return -ENOMEM;
}
@@
-313,7
+313,7
@@
pcc_expression_parse(struct cfs_lstr *src, struct list_head *cond_list)
struct cfs_lstr field;
int rc = 0;
- OBD_ALLOC
(expr, sizeof(struct pcc_expression)
);
+ OBD_ALLOC
_PTR(expr
);
if (expr == NULL)
return -ENOMEM;
@@
-371,7
+371,7
@@
pcc_conjunction_parse(struct cfs_lstr *src, struct list_head *cond_list)
struct cfs_lstr expr;
int rc = 0;
- OBD_ALLOC
(conjunction, sizeof(struct pcc_conjunction)
);
+ OBD_ALLOC
_PTR(conjunction
);
if (conjunction == NULL)
return -ENOMEM;
@@
-1106,16
+1106,9
@@
static int pcc_layout_xattr_set(struct pcc_inode *pcci, __u32 gen)
if (!(lli->lli_pcc_dsflags & PCC_DATASET_AUTO_ATTACH))
RETURN(0);
-#ifndef HAVE_VFS_SETXATTR
- if (!pcc_dentry->d_inode->i_op->setxattr)
- RETURN(-ENOTSUPP);
+ rc = ll_vfs_setxattr(pcc_dentry, pcc_dentry->d_inode, pcc_xattr_layout,
+ &gen, sizeof(gen), 0);
- rc = pcc_dentry->d_inode->i_op->setxattr(pcc_dentry, pcc_xattr_layout,
- &gen, sizeof(gen), 0);
-#else
- rc = __vfs_setxattr(pcc_dentry, pcc_dentry->d_inode, pcc_xattr_layout,
- &gen, sizeof(gen), 0);
-#endif
RETURN(rc);
}
@@
-1238,18
+1231,8
@@
static int pcc_try_dataset_attach(struct inode *inode, __u32 gen,
GOTO(out, rc = 0);
pcc_dentry = path.dentry;
-#ifndef HAVE_VFS_SETXATTR
- if (!pcc_dentry->d_inode->i_op->getxattr)
- /* ignore this error */
- GOTO(out_put_path, rc = 0);
-
- rc = pcc_dentry->d_inode->i_op->getxattr(pcc_dentry, pcc_xattr_layout,
- &pcc_gen, sizeof(pcc_gen));
-#else
- rc = __vfs_getxattr(pcc_dentry, pcc_dentry->d_inode, pcc_xattr_layout,
- &pcc_gen, sizeof(pcc_gen));
-#endif
-
+ rc = ll_vfs_getxattr(pcc_dentry, pcc_dentry->d_inode, pcc_xattr_layout,
+ &pcc_gen, sizeof(pcc_gen));
if (rc < 0)
/* ignore this error */
GOTO(out_put_path, rc = 0);
@@
-1456,11
+1439,10
@@
int pcc_file_open(struct inode *inode, struct file *file)
{
struct pcc_inode *pcci;
struct ll_inode_info *lli = ll_i2info(inode);
- struct ll_file_data *fd =
LUSTRE_FPRIVATE(file)
;
+ struct ll_file_data *fd =
file->private_data
;
struct pcc_file *pccf = &fd->fd_pcc_file;
struct file *pcc_file;
struct path *path;
- struct qstr *dname;
bool cached = false;
int rc = 0;
@@
-1490,17
+1472,10
@@
int pcc_file_open(struct inode *inode, struct file *file)
WARN_ON(pccf->pccf_file);
path = &pcci->pcci_path;
- dname = &path->dentry->d_name;
- CDEBUG(D_CACHE, "opening pcc file '%.*s'\n", dname->len,
- dname->name);
+ CDEBUG(D_CACHE, "opening pcc file '%pd'\n", path->dentry);
-#ifdef HAVE_DENTRY_OPEN_USE_PATH
pcc_file = dentry_open(path, file->f_flags,
pcc_super_cred(inode->i_sb));
-#else
- pcc_file = dentry_open(path->dentry, path->mnt, file->f_flags,
- pcc_super_cred(inode->i_sb));
-#endif
if (IS_ERR_OR_NULL(pcc_file)) {
rc = pcc_file == NULL ? -EINVAL : PTR_ERR(pcc_file);
pcc_inode_put(pcci);
@@
-1517,10
+1492,9
@@
out_unlock:
void pcc_file_release(struct inode *inode, struct file *file)
{
struct pcc_inode *pcci;
- struct ll_file_data *fd =
LUSTRE_FPRIVATE(file)
;
+ struct ll_file_data *fd =
file->private_data
;
struct pcc_file *pccf;
struct path *path;
- struct qstr *dname;
ENTRY;
@@
-1535,9
+1509,7
@@
void pcc_file_release(struct inode *inode, struct file *file)
pcci = ll_i2pcci(inode);
LASSERT(pcci);
path = &pcci->pcci_path;
- dname = &path->dentry->d_name;
- CDEBUG(D_CACHE, "releasing pcc file \"%.*s\"\n", dname->len,
- dname->name);
+ CDEBUG(D_CACHE, "releasing pcc file \"%pd\"\n", path->dentry);
pcc_inode_put(pcci);
fput(pccf->pccf_file);
pccf->pccf_file = NULL;
@@
-1619,7
+1591,7
@@
ssize_t pcc_file_read_iter(struct kiocb *iocb,
struct iov_iter *iter, bool *cached)
{
struct file *file = iocb->ki_filp;
- struct ll_file_data *fd =
LUSTRE_FPRIVATE(file)
;
+ struct ll_file_data *fd =
file->private_data
;
struct pcc_file *pccf = &fd->fd_pcc_file;
struct inode *inode = file_inode(file);
ssize_t result;
@@
-1686,7
+1658,7
@@
ssize_t pcc_file_write_iter(struct kiocb *iocb,
struct iov_iter *iter, bool *cached)
{
struct file *file = iocb->ki_filp;
- struct ll_file_data *fd =
LUSTRE_FPRIVATE(file)
;
+ struct ll_file_data *fd =
file->private_data
;
struct pcc_file *pccf = &fd->fd_pcc_file;
struct inode *inode = file_inode(file);
ssize_t result;
@@
-1825,7
+1797,7
@@
ssize_t pcc_file_splice_read(struct file *in_file, loff_t *ppos,
bool *cached)
{
struct inode *inode = file_inode(in_file);
- struct ll_file_data *fd =
LUSTRE_FPRIVATE(in_file)
;
+ struct ll_file_data *fd =
in_file->private_data
;
struct file *pcc_file = fd->fd_pcc_file.pccf_file;
ssize_t result;
@@
-1854,7
+1826,7
@@
int pcc_fsync(struct file *file, loff_t start, loff_t end,
int datasync, bool *cached)
{
struct inode *inode = file_inode(file);
- struct ll_file_data *fd =
LUSTRE_FPRIVATE(file)
;
+ struct ll_file_data *fd =
file->private_data
;
struct file *pcc_file = fd->fd_pcc_file.pccf_file;
int rc;
@@
-1880,7
+1852,7
@@
int pcc_file_mmap(struct file *file, struct vm_area_struct *vma,
bool *cached)
{
struct inode *inode = file_inode(file);
- struct ll_file_data *fd =
LUSTRE_FPRIVATE(file)
;
+ struct ll_file_data *fd =
file->private_data
;
struct file *pcc_file = fd->fd_pcc_file.pccf_file;
struct pcc_inode *pcci;
int rc = 0;
@@
-1915,7
+1887,7
@@
void pcc_vm_open(struct vm_area_struct *vma)
struct pcc_inode *pcci;
struct file *file = vma->vm_file;
struct inode *inode = file_inode(file);
- struct ll_file_data *fd =
LUSTRE_FPRIVATE(file)
;
+ struct ll_file_data *fd =
file->private_data
;
struct file *pcc_file = fd->fd_pcc_file.pccf_file;
struct vm_operations_struct *pcc_vm_ops = vma->vm_private_data;
@@
-1939,7
+1911,7
@@
void pcc_vm_close(struct vm_area_struct *vma)
{
struct file *file = vma->vm_file;
struct inode *inode = file_inode(file);
- struct ll_file_data *fd =
LUSTRE_FPRIVATE(file)
;
+ struct ll_file_data *fd =
file->private_data
;
struct file *pcc_file = fd->fd_pcc_file.pccf_file;
struct vm_operations_struct *pcc_vm_ops = vma->vm_private_data;
@@
-1964,7
+1936,7
@@
int pcc_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
struct mm_struct *mm = vma->vm_mm;
struct file *file = vma->vm_file;
struct inode *inode = file_inode(file);
- struct ll_file_data *fd =
LUSTRE_FPRIVATE(file)
;
+ struct ll_file_data *fd =
file->private_data
;
struct file *pcc_file = fd->fd_pcc_file.pccf_file;
struct vm_operations_struct *pcc_vm_ops = vma->vm_private_data;
int rc;
@@
-2044,7
+2016,7
@@
int pcc_fault(struct vm_area_struct *vma, struct vm_fault *vmf,
{
struct file *file = vma->vm_file;
struct inode *inode = file_inode(file);
- struct ll_file_data *fd =
LUSTRE_FPRIVATE(file)
;
+ struct ll_file_data *fd =
file->private_data
;
struct file *pcc_file = fd->fd_pcc_file.pccf_file;
struct vm_operations_struct *pcc_vm_ops = vma->vm_private_data;
int rc;
@@
-2072,22
+2044,17
@@
int pcc_fault(struct vm_area_struct *vma, struct vm_fault *vmf,
RETURN(rc);
}
-static void pcc_layout_wait(struct pcc_inode *pcci)
-{
-
- while (atomic_read(&pcci->pcci_active_ios) > 0) {
- CDEBUG(D_CACHE, "Waiting for IO completion: %d\n",
- atomic_read(&pcci->pcci_active_ios));
- wait_event_idle(pcci->pcci_waitq,
- atomic_read(&pcci->pcci_active_ios) == 0);
- }
-}
-
static void __pcc_layout_invalidate(struct pcc_inode *pcci)
{
pcci->pcci_type = LU_PCC_NONE;
pcc_layout_gen_set(pcci, CL_LAYOUT_GEN_NONE);
- pcc_layout_wait(pcci);
+ if (atomic_read(&pcci->pcci_active_ios) == 0)
+ return;
+
+ CDEBUG(D_CACHE, "Waiting for IO completion: %d\n",
+ atomic_read(&pcci->pcci_active_ios));
+ wait_event_idle(pcci->pcci_waitq,
+ atomic_read(&pcci->pcci_active_ios) == 0);
}
void pcc_layout_invalidate(struct inode *inode)
@@
-2118,9
+2085,8
@@
static int pcc_inode_remove(struct inode *inode, struct dentry *pcc_dentry)
rc = ll_vfs_unlink(pcc_dentry->d_parent->d_inode, pcc_dentry);
if (rc)
- CWARN("%s: failed to unlink PCC file %.*s, rc = %d\n",
- ll_i2sbi(inode)->ll_fsname, pcc_dentry->d_name.len,
- pcc_dentry->d_name.name, rc);
+ CWARN("%s: failed to unlink PCC file %pd, rc = %d\n",
+ ll_i2sbi(inode)->ll_fsname, pcc_dentry, rc);
return rc;
}
@@
-2197,7
+2163,7
@@
pcc_create(struct dentry *base, const char *name, umode_t mode)
if (d_is_positive(dentry))
goto out;
- rc = vfs_create(dir, dentry, mode,
LL_VFS_CREATE_FALSE
);
+ rc = vfs_create(dir, dentry, mode,
false
);
if (rc) {
dput(dentry);
dentry = ERR_PTR(rc);
@@
-2354,9
+2320,8
@@
void pcc_create_attach_cleanup(struct super_block *sb,
rc = ll_vfs_unlink(pca->pca_dentry->d_parent->d_inode,
pca->pca_dentry);
if (rc)
- CWARN("failed to unlink PCC file %.*s, rc = %d\n",
- pca->pca_dentry->d_name.len,
- pca->pca_dentry->d_name.name, rc);
+ CWARN("%s: failed to unlink PCC file %pd: rc = %d\n",
+ ll_s2sbi(sb)->ll_fsname, pca->pca_dentry, rc);
/* ignore the unlink failure */
revert_creds(old_cred);
dput(pca->pca_dentry);
@@
-2472,12
+2437,7
@@
int pcc_readwrite_attach(struct file *file, struct inode *inode,
path.mnt = dataset->pccd_path.mnt;
path.dentry = dentry;
-#ifdef HAVE_DENTRY_OPEN_USE_PATH
pcc_filp = dentry_open(&path, O_WRONLY | O_LARGEFILE, current_cred());
-#else
- pcc_filp = dentry_open(path.dentry, path.mnt, O_WRONLY | O_LARGEFILE,
- current_cred());
-#endif
if (IS_ERR_OR_NULL(pcc_filp)) {
rc = pcc_filp == NULL ? -EINVAL : PTR_ERR(pcc_filp);
GOTO(out_dentry, rc);
@@
-2680,7
+2640,7
@@
int pcc_ioctl_state(struct file *file, struct inode *inode,
char *buf;
char *path;
int buf_len = sizeof(state->pccs_path);
- struct ll_file_data *fd =
LUSTRE_FPRIVATE(file)
;
+ struct ll_file_data *fd =
file->private_data
;
struct pcc_file *pccf = &fd->fd_pcc_file;
struct pcc_inode *pcci;