staging/lustre/libcfs: remove filp_write
Use vfs_write instead and call kmap/kunmap to ensure that we can access high memory zone. Cc: Andreas Dilger <andreas.dilger@intel.com> Signed-off-by: Peng Tao <bergwolf@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
e23f875db9
commit
7ebcb731fc
2 changed files with 12 additions and 7 deletions
|
@ -52,9 +52,6 @@
|
|||
#include <linux/backing-dev.h>
|
||||
#include <linux/posix_acl_xattr.h>
|
||||
|
||||
#define filp_write(fp, buf, size, pos) \
|
||||
((fp)->f_op->write((fp), (buf), (size), pos))
|
||||
|
||||
#define flock_type(fl) ((fl)->fl_type)
|
||||
#define flock_set_type(fl, type) do { (fl)->fl_type = (type); } while (0)
|
||||
#define flock_pid(fl) ((fl)->fl_pid)
|
||||
|
|
|
@ -678,6 +678,7 @@ int cfs_tracefile_dump_all_pages(char *filename)
|
|||
struct file *filp;
|
||||
struct cfs_trace_page *tage;
|
||||
struct cfs_trace_page *tmp;
|
||||
char *buf;
|
||||
int rc;
|
||||
|
||||
DECL_MMSPACE;
|
||||
|
@ -708,8 +709,11 @@ int cfs_tracefile_dump_all_pages(char *filename)
|
|||
|
||||
__LASSERT_TAGE_INVARIANT(tage);
|
||||
|
||||
rc = filp_write(filp, page_address(tage->page),
|
||||
tage->used, &filp->f_pos);
|
||||
buf = kmap(tage->page);
|
||||
rc = vfs_write(filp, (__force const char __user *)buf,
|
||||
tage->used, &filp->f_pos);
|
||||
kunmap(tage->page);
|
||||
|
||||
if (rc != (int)tage->used) {
|
||||
printk(KERN_WARNING "wanted to write %u but wrote "
|
||||
"%d\n", tage->used, rc);
|
||||
|
@ -971,6 +975,7 @@ static int tracefiled(void *arg)
|
|||
struct cfs_trace_page *tage;
|
||||
struct cfs_trace_page *tmp;
|
||||
struct file *filp;
|
||||
char *buf;
|
||||
int last_loop = 0;
|
||||
int rc;
|
||||
|
||||
|
@ -1023,8 +1028,11 @@ static int tracefiled(void *arg)
|
|||
else if (f_pos > i_size_read(filp->f_dentry->d_inode))
|
||||
f_pos = i_size_read(filp->f_dentry->d_inode);
|
||||
|
||||
rc = filp_write(filp, page_address(tage->page),
|
||||
tage->used, &f_pos);
|
||||
buf = kmap(tage->page);
|
||||
rc = vfs_write(filp, (__force const char __user *)buf,
|
||||
tage->used, &f_pos);
|
||||
kunmap(tage->page);
|
||||
|
||||
if (rc != (int)tage->used) {
|
||||
printk(KERN_WARNING "wanted to write %u "
|
||||
"but wrote %d\n", tage->used, rc);
|
||||
|
|
Loading…
Reference in a new issue