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-1194 llog: fix for not sync llcd at thread stop
[fs/lustre-release.git]
/
lustre
/
obdclass
/
llog_cat.c
diff --git
a/lustre/obdclass/llog_cat.c
b/lustre/obdclass/llog_cat.c
index
de05bb6
..
f0fa468
100644
(file)
--- a/
lustre/obdclass/llog_cat.c
+++ b/
lustre/obdclass/llog_cat.c
@@
-1,6
+1,4
@@
-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
- *
+/*
* GPL HEADER START
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* GPL HEADER START
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@
-26,7
+24,7
@@
* GPL HEADER END
*/
/*
* GPL HEADER END
*/
/*
- * Copyright
2008 Sun Microsystems, Inc. All rights reserved
+ * Copyright
(c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*/
/*
* Use is subject to license terms.
*/
/*
@@
-46,10
+44,6
@@
#define DEBUG_SUBSYSTEM S_LOG
#define DEBUG_SUBSYSTEM S_LOG
-#ifndef EXPORT_SYMTAB
-#define EXPORT_SYMTAB
-#endif
-
#ifndef __KERNEL__
#include <liblustre.h>
#endif
#ifndef __KERNEL__
#include <liblustre.h>
#endif
@@
-394,18
+388,20
@@
int llog_cat_process_cb(struct llog_handle *cat_llh, struct llog_rec_hdr *rec,
cd.lpcd_first_idx = d->lpd_startidx;
cd.lpcd_last_idx = 0;
cd.lpcd_first_idx = d->lpd_startidx;
cd.lpcd_last_idx = 0;
- rc = llog_process(llh, d->lpd_cb, d->lpd_data, &cd);
+ rc = llog_process_flags(llh, d->lpd_cb, d->lpd_data, &cd,
+ d->lpd_flags);
/* Continue processing the next log from idx 0 */
d->lpd_startidx = 0;
} else {
/* Continue processing the next log from idx 0 */
d->lpd_startidx = 0;
} else {
- rc = llog_process(llh, d->lpd_cb, d->lpd_data, NULL);
+ rc = llog_process_flags(llh, d->lpd_cb, d->lpd_data, NULL,
+ d->lpd_flags);
}
RETURN(rc);
}
}
RETURN(rc);
}
-int llog_cat_process
(struct llog_handle *cat_llh, llog_cb_t cb, void *data
,
- int startcat, int startidx)
+int llog_cat_process
_flags(struct llog_handle *cat_llh, llog_cb_t cb
,
+
void *data, int flags,
int startcat, int startidx)
{
struct llog_process_data d;
struct llog_log_hdr *llh = cat_llh->lgh_hdr;
{
struct llog_process_data d;
struct llog_log_hdr *llh = cat_llh->lgh_hdr;
@@
-417,6
+413,7
@@
int llog_cat_process(struct llog_handle *cat_llh, llog_cb_t cb, void *data,
d.lpd_cb = cb;
d.lpd_startcat = startcat;
d.lpd_startidx = startidx;
d.lpd_cb = cb;
d.lpd_startcat = startcat;
d.lpd_startidx = startidx;
+ d.lpd_flags = flags;
if (llh->llh_cat_idx > cat_llh->lgh_last_idx) {
struct llog_process_cat_data cd;
if (llh->llh_cat_idx > cat_llh->lgh_last_idx) {
struct llog_process_cat_data cd;
@@
-426,19
+423,29
@@
int llog_cat_process(struct llog_handle *cat_llh, llog_cb_t cb, void *data,
cd.lpcd_first_idx = llh->llh_cat_idx;
cd.lpcd_last_idx = 0;
cd.lpcd_first_idx = llh->llh_cat_idx;
cd.lpcd_last_idx = 0;
- rc = llog_process(cat_llh, llog_cat_process_cb, &d, &cd);
+ rc = llog_process_flags(cat_llh, llog_cat_process_cb, &d, &cd,
+ flags);
if (rc != 0)
RETURN(rc);
cd.lpcd_first_idx = 0;
cd.lpcd_last_idx = cat_llh->lgh_last_idx;
if (rc != 0)
RETURN(rc);
cd.lpcd_first_idx = 0;
cd.lpcd_last_idx = cat_llh->lgh_last_idx;
- rc = llog_process(cat_llh, llog_cat_process_cb, &d, &cd);
+ rc = llog_process_flags(cat_llh, llog_cat_process_cb, &d, &cd,
+ flags);
} else {
} else {
- rc = llog_process(cat_llh, llog_cat_process_cb, &d, NULL);
+ rc = llog_process_flags(cat_llh, llog_cat_process_cb, &d, NULL,
+ flags);
}
RETURN(rc);
}
}
RETURN(rc);
}
+EXPORT_SYMBOL(llog_cat_process_flags);
+
+int llog_cat_process(struct llog_handle *cat_llh, llog_cb_t cb, void *data,
+ int startcat, int startidx)
+{
+ return llog_cat_process_flags(cat_llh, cb, data, 0, startcat, startidx);
+}
EXPORT_SYMBOL(llog_cat_process);
#ifdef __KERNEL__
EXPORT_SYMBOL(llog_cat_process);
#ifdef __KERNEL__
@@
-478,7
+485,7
@@
int llog_cat_process_thread(void *data)
/*
* Make sure that all cached data is sent.
*/
/*
* Make sure that all cached data is sent.
*/
-
llog_sync(ctxt, NULL
);
+
llog_sync(ctxt, NULL, 0
);
GOTO(release_llh, rc);
release_llh:
rc = llog_cat_put(llh);
GOTO(release_llh, rc);
release_llh:
rc = llog_cat_put(llh);