Lines Matching defs:logr
814 u32 get_undo_offset(const LOG_RECORD *logr)
818 if (logr->lcns_to_follow)
819 offset = 0x30 + le16_to_cpu(logr->undo_offset);
821 offset = 0x28 + le16_to_cpu(logr->undo_offset);
825 u32 get_redo_offset(const LOG_RECORD *logr)
829 if (logr->lcns_to_follow)
830 offset = 0x30 + le16_to_cpu(logr->redo_offset);
832 offset = 0x28 + le16_to_cpu(logr->redo_offset);
836 u32 get_extra_offset(const LOG_RECORD *logr)
841 roffset = get_redo_offset(logr)
842 + le16_to_cpu(logr->redo_length);
843 uoffset = get_undo_offset(logr)
844 + le16_to_cpu(logr->undo_length);
848 static BOOL likelyop(const LOG_RECORD *logr)
852 switch (logr->record_type) {
855 likely = ((unsigned int)le16_to_cpu(logr->redo_operation)
857 && ((unsigned int)le16_to_cpu(logr->undo_operation)
860 && !(le16_to_cpu(logr->redo_offset) & 7)
861 && !(le16_to_cpu(logr->undo_offset) & 7)
863 && logr->transaction_id
865 && !(le32_to_cpu(logr->client_data_length) & 7)
867 && (le32_to_cpu(logr->client_data_length) < MAXRECSIZE)
869 && (!le16_to_cpu(logr->redo_length)
870 || ((unsigned int)le16_to_cpu(logr->redo_offset) >= 0x28))
872 && (!le16_to_cpu(logr->undo_length)
873 || ((unsigned int)le16_to_cpu(logr->undo_offset) >= 0x28));
875 if (likely && logr->redo_length && logr->undo_length) {
877 if (logr->undo_offset == logr->redo_offset) {
878 if (logr->redo_length != logr->undo_length)
881 if (le16_to_cpu(logr->redo_offset)
882 < le16_to_cpu(logr->undo_offset)) {
884 if ((((le16_to_cpu(logr->redo_offset)
885 + le16_to_cpu(logr->redo_length)
887 != le16_to_cpu(logr->undo_offset))
891 if ((((le16_to_cpu(logr->undo_offset)
892 + le16_to_cpu(logr->undo_length)
894 != le16_to_cpu(logr->redo_offset))
905 likely = (!logr->redo_operation
906 || ((logr->redo_operation == const_cpu_to_le16(1))
907 && !logr->redo_length))
908 && (!logr->undo_operation
909 || ((logr->undo_operation == const_cpu_to_le16(1))
910 && !logr->undo_length))
912 && !logr->transaction_id
914 && ((le32_to_cpu(logr->client_data_length) == 0x68)
915 || (le32_to_cpu(logr->client_data_length) == 0x70));
934 const LOG_RECORD *logr;
942 logr = (const LOG_RECORD*)&data[k];
943 if (!likelyop(logr)) {
946 logr = (const LOG_RECORD*)&data[k];
948 && !likelyop(logr));
976 const LOG_RECORD *logr;
998 logr = (const LOG_RECORD*)&prevdata[k];
999 if (!logr->client_data_length) {
1022 size = le32_to_cpu(logr->client_data_length)
1071 logr = (const LOG_RECORD*)&data[k];
1074 && !likelyop(logr)) {
1204 const LOG_RECORD *logr;
1217 logr = &action->record;
1218 buf = ((const char*)logr) + get_redo_offset(logr);
1219 length = le16_to_cpu(logr->redo_length);
1222 extra = get_extra_offset(logr)
1223 - get_redo_offset(logr);
1224 if (logr->undo_length) {
1225 len = le32_to_cpu(logr->client_data_length)
1227 - get_extra_offset(logr);
1232 pa = getattrentry(le16_to_cpu(logr->target_attribute),
1295 static void fixup(CONTEXT *ctx, const LOG_RECORD *logr, const char *buf,
1316 attr = le16_to_cpu(logr->target_attribute);
1317 offs = le16_to_cpu(logr->attribute_offset);
1319 action = le16_to_cpu(logr->redo_operation);
1320 length = le16_to_cpu(logr->redo_length);
1322 action = le16_to_cpu(logr->undo_operation);
1323 length = le16_to_cpu(logr->undo_length);
1348 (((long long)sle64_to_cpu(logr->target_vcn)
1350 + (le16_to_cpu(logr->cluster_index) << 9))
1397 (((long long)sle64_to_cpu(logr->target_vcn) << clusterbits)
1398 + (le16_to_cpu(logr->cluster_index) << 9)) >> mftrecbits);
1460 && (le16_to_cpu(logr->record_offset) == firstpos)) {
1735 extra = get_extra_offset(logr)
1736 - (redo ? get_redo_offset(logr)
1737 : get_undo_offset(logr));
1738 if (logr->undo_length) {
1739 len = le32_to_cpu(logr->client_data_length)
1741 - get_extra_offset(logr);
1764 if (logr->undo_length)
1860 static void detaillogr(CONTEXT *ctx, const LOG_RECORD *logr)
1873 switch (logr->record_type) {
1875 onmft = logr->cluster_index
1876 || acts_on_mft(le16_to_cpu(logr->redo_operation))
1877 || acts_on_mft(le16_to_cpu(logr->undo_operation));
1879 (int)le16_to_cpu(logr->redo_operation),
1880 actionname(le16_to_cpu(logr->redo_operation)));
1882 (int)le16_to_cpu(logr->undo_operation),
1883 actionname(le16_to_cpu(logr->undo_operation)));
1885 (int)le16_to_cpu(logr->redo_offset));
1887 (int)le16_to_cpu(logr->redo_length));
1889 (int)le16_to_cpu(logr->undo_offset));
1891 (int)le16_to_cpu(logr->undo_length));
1893 (int)le16_to_cpu(logr->target_attribute));
1895 (int)le16_to_cpu(logr->lcns_to_follow));
1897 (int)le16_to_cpu(logr->record_offset));
1899 (int)le16_to_cpu(logr->attribute_offset));
1901 (int)le16_to_cpu(logr->cluster_index));
1903 (int)le16_to_cpu(logr->attribute_flags));
1906 (long long)sle64_to_cpu(logr->target_vcn),
1907 (((long long)sle64_to_cpu(logr->target_vcn)
1909 + (le16_to_cpu(logr->cluster_index) << 9))
1913 (long long)sle64_to_cpu(logr->target_vcn));
1915 baselcn = sle64_to_cpu(logr->lcn_list[0])
1916 - sle64_to_cpu(logr->target_vcn);
1917 for (i=0; i<le16_to_cpu(logr->lcns_to_follow)
1919 lcn = sle64_to_cpu(logr->lcn_list[i]);
1939 + (le16_to_cpu(logr->cluster_index)
1951 end = le32_to_cpu(logr->client_data_length) + LOG_RECORD_HEAD_SZ;
1952 if (logr->redo_length && logr->undo_length)
1955 if (le16_to_cpu(logr->undo_offset) <=
1956 le16_to_cpu(logr->redo_offset))
1959 + 8*le16_to_cpu(logr->lcns_to_follow);
1960 if (logr->redo_offset == logr->undo_offset)
1963 redo = undo + ((le16_to_cpu(logr->undo_length) - 1) | 7) + 1;
1964 extra = redo + ((le16_to_cpu(logr->redo_length) - 1) | 7) + 1;
1969 + 8*le16_to_cpu(logr->lcns_to_follow);
1970 undo = redo + ((le16_to_cpu(logr->redo_length) - 1) | 7) + 1;
1971 extra = undo + ((le16_to_cpu(logr->undo_length) - 1) | 7) + 1;
1975 if (logr->redo_length)
1979 + 8*le16_to_cpu(logr->lcns_to_follow);
1980 extra = redo + ((le16_to_cpu(logr->redo_length) - 1) | 7) + 1;
1986 + 8*le16_to_cpu(logr->lcns_to_follow);
1987 extra = undo + ((le16_to_cpu(logr->undo_length) - 1) | 7) + 1;
1991 redo,(int)(((le16_to_cpu(logr->redo_length) - 1) | 7) + 1),
1992 undo,(int)(((le16_to_cpu(logr->undo_length) - 1) | 7) + 1),
1995 if (logr->redo_length && (get_redo_offset(logr) != redo))
1997 get_redo_offset(logr),(int)redo,
1998 (int)le16_to_cpu(logr->lcns_to_follow));
1999 if (logr->undo_length && (get_undo_offset(logr) != undo))
2001 get_undo_offset(logr),(int)undo,
2002 (int)le16_to_cpu(logr->lcns_to_follow));
2003 if (get_extra_offset(logr) != extra)
2005 get_extra_offset(logr),(int)extra,
2006 (int)le16_to_cpu(logr->lcns_to_follow));
2011 if (logr->redo_length)
2013 if (logr->lcns_to_follow)
2015 off = le16_to_cpu(logr->record_offset)
2016 + le16_to_cpu(logr->attribute_offset);
2018 (long long)sle64_to_cpu(logr->lcn_list[off
2024 if ((u32)(redo + le16_to_cpu(logr->redo_length))
2027 hexdump((const char*)logr
2028 + redo,le16_to_cpu(logr->redo_length));
2029 fixup(ctx, logr, (const char*)logr + redo, TRUE);
2036 fixup(ctx, logr, (const char*)logr + redo, TRUE);
2040 if (logr->undo_length)
2042 if (logr->lcns_to_follow)
2044 off = le16_to_cpu(logr->record_offset)
2045 + le16_to_cpu(logr->attribute_offset);
2047 (long long)sle64_to_cpu(logr->lcn_list[off
2052 if ((u32)(undo + le16_to_cpu(logr->undo_length)) <= end)
2054 if ((undo + le16_to_cpu(logr->undo_length)) < 2*blocksz)
2056 hexdump((const char*)logr
2057 + undo,le16_to_cpu(logr->undo_length));
2058 fixup(ctx, logr, (const char*)logr + undo, FALSE);
2067 fixup(ctx, logr, (const char*)logr + undo, FALSE);
2078 hexdump((const char*)logr + extra,
2086 if (logr->redo_length
2087 && ((u32)(redo + le16_to_cpu(logr->redo_length)) > end))
2089 if (logr->undo_length
2090 && ((u32)(undo + le16_to_cpu(logr->undo_length)) > end))
2097 (int)le16_to_cpu(logr->redo_operation),
2098 actionname(le16_to_cpu(logr->redo_operation)));
2100 (int)le16_to_cpu(logr->undo_operation),
2101 actionname(le16_to_cpu(logr->undo_operation)));
2103 (int)le16_to_cpu(logr->redo_offset));
2105 (int)le16_to_cpu(logr->redo_length));
2107 (long long)sle64_to_cpu(logr->transaction_lsn));
2109 (long long)sle64_to_cpu(logr->attributes_lsn));
2111 (long long)sle64_to_cpu(logr->names_lsn));
2113 (long long)sle64_to_cpu(logr->dirty_pages_lsn));
2114 listsize = le32_to_cpu(logr->client_data_length)
2121 (long long)le64_to_cpu(logr->unknown_list[i]));
2125 if (le32_to_cpu(logr->client_data_length) < blocksz) {
2127 (long)le32_to_cpu(logr->record_type));
2128 hexdump((const char*)&logr->redo_operation,
2129 le32_to_cpu(logr->client_data_length));
2136 BOOL within_lcn_range(const LOG_RECORD *logr)
2143 switch (logr->record_type) {
2145 for (i=0; i<le16_to_cpu(logr->lcns_to_follow); i++) {
2146 lcn = MREF(sle64_to_cpu(logr->lcn_list[i]));
2157 static void showlogr(CONTEXT *ctx, int k, const LOG_RECORD *logr)
2161 if (optv && (!optc || within_lcn_range(logr))) {
2162 diff = sle64_to_cpu(logr->this_lsn) - synced_lsn;
2164 (long long)sle64_to_cpu(logr->this_lsn),
2168 (long long)sle64_to_cpu(logr->client_previous_lsn));
2170 (long long)sle64_to_cpu(logr->client_undo_next_lsn));
2172 (long)le32_to_cpu(logr->client_data_length));
2174 (int)le16_to_cpu(logr->client_id.seq_number));
2176 (int)le16_to_cpu(logr->client_id.client_index));
2178 (long)le32_to_cpu(logr->record_type));
2180 (long)le32_to_cpu(logr->transaction_id));
2182 (int)le16_to_cpu(logr->log_record_flags));
2184 (int)le16_to_cpu(logr->reserved_or_alignment[0]),
2185 (int)le16_to_cpu(logr->reserved_or_alignment[1]),
2186 (int)le16_to_cpu(logr->reserved_or_alignment[2]));
2187 detaillogr(ctx, logr);
2192 if (logr->record_type == LOG_CHECKPOINT)
2195 state = commitment(sle64_to_cpu(logr->this_lsn));
2197 (long long)sle64_to_cpu(logr->this_lsn),
2199 (long)(sle64_to_cpu(logr->this_lsn) - synced_lsn),
2200 actionname(le16_to_cpu(logr->redo_operation)));
2201 if (logr->client_previous_lsn || logr->client_undo_next_lsn) {
2202 if (logr->client_previous_lsn
2203 == logr->client_undo_next_lsn) {
2207 logr->client_previous_lsn));
2212 logr->client_previous_lsn));
2214 if (logr->client_undo_next_lsn)
2217 logr->client_undo_next_lsn));
2232 const LOG_RECORD *logr;
2243 logr = &action->record;
2244 if ((logr->redo_operation
2248 id = logr->transaction_id;
2254 committed = ((s64)(sle64_to_cpu(logr->this_lsn)
2256 if (!logr->transaction_id
2260 && (logr->transaction_id == id)
2274 logr = &action->record;
2275 if (logr->transaction_id
2289 static TRISTATE enqueue_action(CONTEXT *ctx, const LOG_RECORD *logr,
2302 memcpy(&action->record, logr, size);
2316 && (logr->record_type == LOG_CHECKPOINT)) {
2361 && ((s64)(sle64_to_cpu(logr->this_lsn) - synced_lsn) <= 0)) {
2456 const LOG_RECORD *logr;
2467 logr = (const LOG_RECORD*)&data[k];
2468 size = le32_to_cpu(logr->client_data_length) + LOG_RECORD_HEAD_SZ;
2616 const LOG_RECORD *logr;
2631 logr = (const LOG_RECORD*)&data[k];
2633 if (!likelyop(logr)) {
2655 logr = (const LOG_RECORD*)&data[k];
2656 size = le32_to_cpu(logr->client_data_length)
2664 showlogr(ctx, k, logr);
2679 showlogr(ctx, k, logr);
2680 if (!logr->client_data_length) {
3340 const LOG_RECORD *logr;
3348 logr = (const LOG_RECORD*)&data[k];
3350 size = le32_to_cpu(logr->client_data_length) + LOG_RECORD_HEAD_SZ;
3439 const LOG_RECORD *logr;
3479 logr = (const LOG_RECORD*)&data[k];
3484 logr = (const LOG_RECORD*)&data[k];
3485 if (likelyop(logr)) {
3495 showlogr(ctx, k,logr);
3510 logr = (const LOG_RECORD*)&data[k];
3511 size = le32_to_cpu(logr->client_data_length)
3524 if (!logr->client_data_length)
3552 logr = (const LOG_RECORD*)&data[k];
3553 size = le32_to_cpu(logr->client_data_length)
3556 if (optv && (!optc || within_lcn_range(logr))) {
3564 if (logr->this_lsn == restart.current_lsn)
3567 if (logr->this_lsn == client.client_restart_lsn)
3570 if (logr->client_data_length
3575 showlogr(ctx, k, logr);
3577 state = enqueue_action(ctx, logr, size, actionnum);