struct cfs_trace_page *tage;
struct cfs_trace_page *tmp;
mm_segment_t __oldfs;
+ char *buf;
int rc;
cfs_tracefile_write_lock();
__LASSERT_TAGE_INVARIANT(tage);
- rc = vfs_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);
struct cfs_trace_page *tmp;
mm_segment_t __oldfs;
struct file *filp;
+ char *buf;
int last_loop = 0;
int rc;
else if (f_pos > i_size_read(de->d_inode))
f_pos = i_size_read(de->d_inode);
- rc = vfs_write(filp, page_address(tage->page),
+ 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);