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-4423 libcfs: remove some unused code and wrappers in libcfs
[fs/lustre-release.git]
/
libcfs
/
libcfs
/
tracefile.c
diff --git
a/libcfs/libcfs/tracefile.c
b/libcfs/libcfs/tracefile.c
index
8170f34
..
2baecb8
100644
(file)
--- a/
libcfs/libcfs/tracefile.c
+++ b/
libcfs/libcfs/tracefile.c
@@
-44,6
+44,7
@@
#define LUSTRE_TRACEFILE_PRIVATE
#include "tracefile.h"
#define LUSTRE_TRACEFILE_PRIVATE
#include "tracefile.h"
+#include <linux/kthread.h>
#include <libcfs/libcfs.h>
/* XXX move things up to the top, comment */
#include <libcfs/libcfs.h>
/* XXX move things up to the top, comment */
@@
-274,7
+275,7
@@
int libcfs_debug_vmsg2(struct libcfs_debug_msg_data *msgdata,
int remain;
int mask = msgdata->msg_mask;
char *file = (char *)msgdata->msg_file;
int remain;
int mask = msgdata->msg_mask;
char *file = (char *)msgdata->msg_file;
-
cfs_debug_limit_state_t
*cdls = msgdata->msg_cdls;
+
struct cfs_debug_limit_state
*cdls = msgdata->msg_cdls;
if (strchr(file, '/'))
file = strrchr(file, '/') + 1;
if (strchr(file, '/'))
file = strrchr(file, '/') + 1;
@@
-448,7
+449,7
@@
console:
cfs_print_to_console(&header, mask,
string_buf, needed, file, msgdata->msg_fn);
cfs_print_to_console(&header, mask,
string_buf, needed, file, msgdata->msg_fn);
-
cfs_trace_put_console_buffer(string_buf
);
+
put_cpu(
);
}
if (cdls != NULL && cdls->cdls_count != 0) {
}
if (cdls != NULL && cdls->cdls_count != 0) {
@@
-462,7
+463,7
@@
console:
cfs_print_to_console(&header, mask,
string_buf, needed, file, msgdata->msg_fn);
cfs_print_to_console(&header, mask,
string_buf, needed, file, msgdata->msg_fn);
-
cfs_trace_put_console_buffer(string_buf
);
+
put_cpu(
);
cdls->cdls_count = 0;
}
cdls->cdls_count = 0;
}
@@
-663,10
+664,10
@@
int cfs_tracefile_dump_all_pages(char *filename)
struct file *filp;
struct cfs_trace_page *tage;
struct cfs_trace_page *tmp;
struct file *filp;
struct cfs_trace_page *tage;
struct cfs_trace_page *tmp;
+ mm_segment_t __oldfs;
+ char *buf;
int rc;
int rc;
- DECL_MMSPACE;
-
cfs_tracefile_write_lock();
filp = filp_open(filename, O_CREAT|O_EXCL|O_WRONLY|O_LARGEFILE, 0600);
cfs_tracefile_write_lock();
filp = filp_open(filename, O_CREAT|O_EXCL|O_WRONLY|O_LARGEFILE, 0600);
@@
-684,16
+685,19
@@
int cfs_tracefile_dump_all_pages(char *filename)
rc = 0;
goto close;
}
rc = 0;
goto close;
}
+ __oldfs = get_fs();
+ set_fs(get_ds());
- /* ok, for now, just write the pages. in the future we'll be building
- * iobufs with the pages and calling generic_direct_IO */
- MMSPACE_OPEN;
+ /* ok, for now, just write the pages. in the future we'll be building
+ * iobufs with the pages and calling generic_direct_IO */
list_for_each_entry_safe(tage, tmp, &pc.pc_pages, linkage) {
list_for_each_entry_safe(tage, tmp, &pc.pc_pages, linkage) {
-
__LASSERT_TAGE_INVARIANT(tage);
+ __LASSERT_TAGE_INVARIANT(tage);
- rc = filp_write(filp, page_address(tage->page),
- tage->used, filp_poff(filp));
+ 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);
if (rc != (int)tage->used) {
printk(KERN_WARNING "wanted to write %u but wrote "
"%d\n", tage->used, rc);
@@
-704,7
+708,7
@@
int cfs_tracefile_dump_all_pages(char *filename)
list_del(&tage->linkage);
cfs_tage_free(tage);
}
list_del(&tage->linkage);
cfs_tage_free(tage);
}
-
MMSPACE_CLOSE
;
+
set_fs(__oldfs)
;
rc = ll_vfs_fsync_range(filp, 0, LLONG_MAX, 1);
if (rc)
printk(KERN_ERR "sync returns %d\n", rc);
rc = ll_vfs_fsync_range(filp, 0, LLONG_MAX, 1);
if (rc)
printk(KERN_ERR "sync returns %d\n", rc);
@@
-796,11
+800,6
@@
int cfs_trace_allocate_string_buffer(char **str, int nob)
return 0;
}
return 0;
}
-void cfs_trace_free_string_buffer(char *str, int nob)
-{
- kfree(str);
-}
-
int cfs_trace_dump_debug_buffer_usrstr(void __user *usr_str, int usr_str_nob)
{
char *str;
int cfs_trace_dump_debug_buffer_usrstr(void __user *usr_str, int usr_str_nob)
{
char *str;
@@
-821,7
+820,7
@@
int cfs_trace_dump_debug_buffer_usrstr(void __user *usr_str, int usr_str_nob)
}
rc = cfs_tracefile_dump_all_pages(str);
out:
}
rc = cfs_tracefile_dump_all_pages(str);
out:
-
cfs_trace_free_string_buffer(str, usr_str_nob + 1
);
+
kfree(str
);
return rc;
}
return rc;
}
@@
-877,7
+876,7
@@
int cfs_trace_daemon_command_usrstr(void __user *usr_str, int usr_str_nob)
if (rc == 0)
rc = cfs_trace_daemon_command(str);
if (rc == 0)
rc = cfs_trace_daemon_command(str);
-
cfs_trace_free_string_buffer(str, usr_str_nob + 1
);
+
kfree(str
);
return rc;
}
return rc;
}
@@
-951,12
+950,12
@@
static int tracefiled(void *arg)
struct tracefiled_ctl *tctl = arg;
struct cfs_trace_page *tage;
struct cfs_trace_page *tmp;
struct tracefiled_ctl *tctl = arg;
struct cfs_trace_page *tage;
struct cfs_trace_page *tmp;
+ mm_segment_t __oldfs;
struct file *filp;
struct file *filp;
+ char *buf;
int last_loop = 0;
int rc;
int last_loop = 0;
int rc;
- DECL_MMSPACE;
-
/* we're started late enough that we pick up init's fs context */
/* this is so broken in uml? what on earth is going on? */
/* we're started late enough that we pick up init's fs context */
/* this is so broken in uml? what on earth is going on? */
@@
-989,21
+988,24
@@
static int tracefiled(void *arg)
__LASSERT(list_empty(&pc.pc_pages));
goto end_loop;
}
__LASSERT(list_empty(&pc.pc_pages));
goto end_loop;
}
-
-
MMSPACE_OPEN
;
+ __oldfs = get_fs();
+
set_fs(get_ds())
;
list_for_each_entry_safe(tage, tmp, &pc.pc_pages, linkage) {
list_for_each_entry_safe(tage, tmp, &pc.pc_pages, linkage) {
- static loff_t f_pos;
+ struct dentry *de = filp->f_path.dentry;
+ static loff_t f_pos;
-
__LASSERT_TAGE_INVARIANT(tage);
+ __LASSERT_TAGE_INVARIANT(tage);
-
if (f_pos >= (off_t)cfs_tracefile_size)
-
f_pos = 0;
- else if (f_pos >
(off_t)filp_size(filp
))
- f_pos =
filp_size(filp
);
+ if (f_pos >= (off_t)cfs_tracefile_size)
+ f_pos = 0;
+ else if (f_pos >
i_size_read(de->d_inode
))
+ f_pos =
i_size_read(de->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);
if (rc != (int)tage->used) {
printk(KERN_WARNING "wanted to write %u "
"but wrote %d\n", tage->used, rc);
@@
-1012,7
+1014,7
@@
static int tracefiled(void *arg)
break;
}
}
break;
}
}
-
MMSPACE_CLOSE
;
+
set_fs(__oldfs)
;
filp_close(filp, NULL);
put_pages_on_daemon_list(&pc);
filp_close(filp, NULL);
put_pages_on_daemon_list(&pc);
@@
-1048,11
+1050,10
@@
end_loop:
break;
}
}
break;
}
}
- init_waitqueue_entry
_current(&__wai
t);
+ init_waitqueue_entry
(&__wait, curren
t);
add_wait_queue(&tctl->tctl_waitq, &__wait);
set_current_state(TASK_INTERRUPTIBLE);
add_wait_queue(&tctl->tctl_waitq, &__wait);
set_current_state(TASK_INTERRUPTIBLE);
- waitq_timedwait(&__wait, TASK_INTERRUPTIBLE,
- cfs_time_seconds(1));
+ schedule_timeout(cfs_time_seconds(1));
remove_wait_queue(&tctl->tctl_waitq, &__wait);
}
complete(&tctl->tctl_stop);
remove_wait_queue(&tctl->tctl_waitq, &__wait);
}
complete(&tctl->tctl_stop);