⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rec_db

📁 linux 下的源代码分析阅读器 red hat公司新版
💻
📖 第 1 页 / 共 2 页
字号:
			    &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0)				goto out;		} else {			*lsnp = argp->prev_lsn;			ret = 0;			goto out;		}	modified = 0;	cmp_n = log_compare(lsnp, &LSN(pagep));	/*	 * Use this when there is something like "pagelsn" in the argp	 * structure.  Sometimes, you might need to compare meta-data	 * lsn's instead.	 *	 * cmp_p = log_compare(&LSN(pagep), argp->pagelsn);	 */	if (cmp_p == 0 && DB_REDO(op)) {		/* Need to redo update described. */		modified = 1;	} else if (cmp_n == 0 && !DB_REDO(op)) {		/* Need to undo update described. */		modified = 1;	}	if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0))		goto out;	*lsnp = argp->prev_lsn;	ret = 0;out:	REC_CLOSE;}/* * __db_pg_free_recover -- *	Recovery function for pg_free. * * PUBLIC: int __db_pg_free_recover * PUBLIC:   __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); */int__db_pg_free_recover(dbenv, dbtp, lsnp, op, info)	DB_ENV *dbenv;	DBT *dbtp;	DB_LSN *lsnp;	db_recops op;	void *info;{	__db_pg_free_args *argp;	DB *file_dbp;	DBC *dbc;	DB_MPOOLFILE *mpf;	PAGE *pagep;	int cmp_n, cmp_p, modified, ret;	REC_PRINT(__db_pg_free_print);	REC_INTRO(__db_pg_free_read, 1);	if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0)		if (DB_REDO(op)) {			if ((ret = mpf->get(mpf,			    &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0)				goto out;		} else {			*lsnp = argp->prev_lsn;			ret = 0;			goto out;		}	modified = 0;	cmp_n = log_compare(lsnp, &LSN(pagep));	/*	 * Use this when there is something like "pagelsn" in the argp	 * structure.  Sometimes, you might need to compare meta-data	 * lsn's instead.	 *	 * cmp_p = log_compare(&LSN(pagep), argp->pagelsn);	 */	if (cmp_p == 0 && DB_REDO(op)) {		/* Need to redo update described. */		modified = 1;	} else if (cmp_n == 0 && !DB_REDO(op)) {		/* Need to undo update described. */		modified = 1;	}	if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0))		goto out;	*lsnp = argp->prev_lsn;	ret = 0;out:	REC_CLOSE;}/* * __db_cksum_recover -- *	Recovery function for cksum. * * PUBLIC: int __db_cksum_recover * PUBLIC:   __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); */int__db_cksum_recover(dbenv, dbtp, lsnp, op, info)	DB_ENV *dbenv;	DBT *dbtp;	DB_LSN *lsnp;	db_recops op;	void *info;{	__db_cksum_args *argp;	DB *file_dbp;	DBC *dbc;	DB_MPOOLFILE *mpf;	PAGE *pagep;	int cmp_n, cmp_p, modified, ret;	REC_PRINT(__db_cksum_print);	REC_INTRO(__db_cksum_read, 1);	if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0)		if (DB_REDO(op)) {			if ((ret = mpf->get(mpf,			    &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0)				goto out;		} else {			*lsnp = argp->prev_lsn;			ret = 0;			goto out;		}	modified = 0;	cmp_n = log_compare(lsnp, &LSN(pagep));	/*	 * Use this when there is something like "pagelsn" in the argp	 * structure.  Sometimes, you might need to compare meta-data	 * lsn's instead.	 *	 * cmp_p = log_compare(&LSN(pagep), argp->pagelsn);	 */	if (cmp_p == 0 && DB_REDO(op)) {		/* Need to redo update described. */		modified = 1;	} else if (cmp_n == 0 && !DB_REDO(op)) {		/* Need to undo update described. */		modified = 1;	}	if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0))		goto out;	*lsnp = argp->prev_lsn;	ret = 0;out:	REC_CLOSE;}/* * __db_pg_freedata_recover -- *	Recovery function for pg_freedata. * * PUBLIC: int __db_pg_freedata_recover * PUBLIC:   __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); */int__db_pg_freedata_recover(dbenv, dbtp, lsnp, op, info)	DB_ENV *dbenv;	DBT *dbtp;	DB_LSN *lsnp;	db_recops op;	void *info;{	__db_pg_freedata_args *argp;	DB *file_dbp;	DBC *dbc;	DB_MPOOLFILE *mpf;	PAGE *pagep;	int cmp_n, cmp_p, modified, ret;	REC_PRINT(__db_pg_freedata_print);	REC_INTRO(__db_pg_freedata_read, 1);	if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0)		if (DB_REDO(op)) {			if ((ret = mpf->get(mpf,			    &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0)				goto out;		} else {			*lsnp = argp->prev_lsn;			ret = 0;			goto out;		}	modified = 0;	cmp_n = log_compare(lsnp, &LSN(pagep));	/*	 * Use this when there is something like "pagelsn" in the argp	 * structure.  Sometimes, you might need to compare meta-data	 * lsn's instead.	 *	 * cmp_p = log_compare(&LSN(pagep), argp->pagelsn);	 */	if (cmp_p == 0 && DB_REDO(op)) {		/* Need to redo update described. */		modified = 1;	} else if (cmp_n == 0 && !DB_REDO(op)) {		/* Need to undo update described. */		modified = 1;	}	if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0))		goto out;	*lsnp = argp->prev_lsn;	ret = 0;out:	REC_CLOSE;}/* * __db_pg_freedata_recover -- *	Recovery function for pg_freedata. * * PUBLIC: int __db_pg_freedata_recover * PUBLIC:   __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); */int__db_pg_freedata_recover(dbenv, dbtp, lsnp, op, info)	DB_ENV *dbenv;	DBT *dbtp;	DB_LSN *lsnp;	db_recops op;	void *info;{	__db_pg_freedata_args *argp;	DB *file_dbp;	DBC *dbc;	DB_MPOOLFILE *mpf;	PAGE *pagep;	int cmp_n, cmp_p, modified, ret;	REC_PRINT(__db_pg_freedata_print);	REC_INTRO(__db_pg_freedata_read, 1);	if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0)		if (DB_REDO(op)) {			if ((ret = mpf->get(mpf,			    &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0)				goto out;		} else {			*lsnp = argp->prev_lsn;			ret = 0;			goto out;		}	modified = 0;	cmp_n = log_compare(lsnp, &LSN(pagep));	/*	 * Use this when there is something like "pagelsn" in the argp	 * structure.  Sometimes, you might need to compare meta-data	 * lsn's instead.	 *	 * cmp_p = log_compare(&LSN(pagep), argp->pagelsn);	 */	if (cmp_p == 0 && DB_REDO(op)) {		/* Need to redo update described. */		modified = 1;	} else if (cmp_n == 0 && !DB_REDO(op)) {		/* Need to undo update described. */		modified = 1;	}	if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0))		goto out;	*lsnp = argp->prev_lsn;	ret = 0;out:	REC_CLOSE;}/* * __db_pg_prepare_recover -- *	Recovery function for pg_prepare. * * PUBLIC: int __db_pg_prepare_recover * PUBLIC:   __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); */int__db_pg_prepare_recover(dbenv, dbtp, lsnp, op, info)	DB_ENV *dbenv;	DBT *dbtp;	DB_LSN *lsnp;	db_recops op;	void *info;{	__db_pg_prepare_args *argp;	DB *file_dbp;	DBC *dbc;	DB_MPOOLFILE *mpf;	PAGE *pagep;	int cmp_n, cmp_p, modified, ret;	REC_PRINT(__db_pg_prepare_print);	REC_INTRO(__db_pg_prepare_read, 1);	if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0)		if (DB_REDO(op)) {			if ((ret = mpf->get(mpf,			    &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0)				goto out;		} else {			*lsnp = argp->prev_lsn;			ret = 0;			goto out;		}	modified = 0;	cmp_n = log_compare(lsnp, &LSN(pagep));	/*	 * Use this when there is something like "pagelsn" in the argp	 * structure.  Sometimes, you might need to compare meta-data	 * lsn's instead.	 *	 * cmp_p = log_compare(&LSN(pagep), argp->pagelsn);	 */	if (cmp_p == 0 && DB_REDO(op)) {		/* Need to redo update described. */		modified = 1;	} else if (cmp_n == 0 && !DB_REDO(op)) {		/* Need to undo update described. */		modified = 1;	}	if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0))		goto out;	*lsnp = argp->prev_lsn;	ret = 0;out:	REC_CLOSE;}/* * __db_pg_new_recover -- *	Recovery function for pg_new. * * PUBLIC: int __db_pg_new_recover * PUBLIC:   __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); */int__db_pg_new_recover(dbenv, dbtp, lsnp, op, info)	DB_ENV *dbenv;	DBT *dbtp;	DB_LSN *lsnp;	db_recops op;	void *info;{	__db_pg_new_args *argp;	DB *file_dbp;	DBC *dbc;	DB_MPOOLFILE *mpf;	PAGE *pagep;	int cmp_n, cmp_p, modified, ret;	REC_PRINT(__db_pg_new_print);	REC_INTRO(__db_pg_new_read, 1);	if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0)		if (DB_REDO(op)) {			if ((ret = mpf->get(mpf,			    &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0)				goto out;		} else {			*lsnp = argp->prev_lsn;			ret = 0;			goto out;		}	modified = 0;	cmp_n = log_compare(lsnp, &LSN(pagep));	/*	 * Use this when there is something like "pagelsn" in the argp	 * structure.  Sometimes, you might need to compare meta-data	 * lsn's instead.	 *	 * cmp_p = log_compare(&LSN(pagep), argp->pagelsn);	 */	if (cmp_p == 0 && DB_REDO(op)) {		/* Need to redo update described. */		modified = 1;	} else if (cmp_n == 0 && !DB_REDO(op)) {		/* Need to undo update described. */		modified = 1;	}	if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0))		goto out;	*lsnp = argp->prev_lsn;	ret = 0;out:	REC_CLOSE;}/* * __db_pg_init_recover -- *	Recovery function for pg_init. * * PUBLIC: int __db_pg_init_recover * PUBLIC:   __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); */int__db_pg_init_recover(dbenv, dbtp, lsnp, op, info)	DB_ENV *dbenv;	DBT *dbtp;	DB_LSN *lsnp;	db_recops op;	void *info;{	__db_pg_init_args *argp;	DB *file_dbp;	DBC *dbc;	DB_MPOOLFILE *mpf;	PAGE *pagep;	int cmp_n, cmp_p, modified, ret;	REC_PRINT(__db_pg_init_print);	REC_INTRO(__db_pg_init_read, 1);	if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0)		if (DB_REDO(op)) {			if ((ret = mpf->get(mpf,			    &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0)				goto out;		} else {			*lsnp = argp->prev_lsn;			ret = 0;			goto out;		}	modified = 0;	cmp_n = log_compare(lsnp, &LSN(pagep));	/*	 * Use this when there is something like "pagelsn" in the argp	 * structure.  Sometimes, you might need to compare meta-data	 * lsn's instead.	 *	 * cmp_p = log_compare(&LSN(pagep), argp->pagelsn);	 */	if (cmp_p == 0 && DB_REDO(op)) {		/* Need to redo update described. */		modified = 1;	} else if (cmp_n == 0 && !DB_REDO(op)) {		/* Need to undo update described. */		modified = 1;	}	if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0))		goto out;	*lsnp = argp->prev_lsn;	ret = 0;out:	REC_CLOSE;}/* * __db_pg_sort_recover -- *	Recovery function for pg_sort. * * PUBLIC: int __db_pg_sort_recover * PUBLIC:   __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); */int__db_pg_sort_recover(dbenv, dbtp, lsnp, op, info)	DB_ENV *dbenv;	DBT *dbtp;	DB_LSN *lsnp;	db_recops op;	void *info;{	__db_pg_sort_args *argp;	DB *file_dbp;	DBC *dbc;	DB_MPOOLFILE *mpf;	PAGE *pagep;	int cmp_n, cmp_p, modified, ret;	REC_PRINT(__db_pg_sort_print);	REC_INTRO(__db_pg_sort_read, 1);	if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0)		if (DB_REDO(op)) {			if ((ret = mpf->get(mpf,			    &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0)				goto out;		} else {			*lsnp = argp->prev_lsn;			ret = 0;			goto out;		}	modified = 0;	cmp_n = log_compare(lsnp, &LSN(pagep));	/*	 * Use this when there is something like "pagelsn" in the argp	 * structure.  Sometimes, you might need to compare meta-data	 * lsn's instead.	 *	 * cmp_p = log_compare(&LSN(pagep), argp->pagelsn);	 */	if (cmp_p == 0 && DB_REDO(op)) {		/* Need to redo update described. */		modified = 1;	} else if (cmp_n == 0 && !DB_REDO(op)) {		/* Need to undo update described. */		modified = 1;	}	if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0))		goto out;	*lsnp = argp->prev_lsn;	ret = 0;out:	REC_CLOSE;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -