* system.
*
* Kern Sibbald, January MMI
+ *
+ * Version $Id$
*/
/*
- Copyright (C) 2001, 2002 Kern Sibbald and John Walker
+ Copyright (C) 2001-2003 Kern Sibbald and John Walker
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
* Returns: 0 on error
* the number of records deleted on success
*/
-int db_delete_pool_record(B_DB *mdb, POOL_DBR *pr)
+int db_delete_pool_record(JCR *jcr, B_DB *mdb, POOL_DBR *pr)
{
int stat;
POOL_DBR opr;
+ db_lock(mdb);
pr->PoolId = 0; /* Search on Pool Name */
- if (!db_get_pool_record(mdb, pr)) {
+ if (!db_get_pool_record(jcr, mdb, pr)) {
Mmsg1(&mdb->errmsg, "No pool record %s exists\n", pr->Name);
+ db_unlock(mdb);
return 0;
}
- P(mdb->mutex);
fseek(mdb->poolfd, pr->rec_addr, SEEK_SET);
memset(&opr, 0, sizeof(opr));
stat = fwrite(&opr, sizeof(opr), 1, mdb->poolfd);
- V(mdb->mutex);
+ db_unlock(mdb);
return stat;
}
-int db_delete_media_record(B_DB *mdb, MEDIA_DBR *mr)
+int db_delete_media_record(JCR *jcr, B_DB *mdb, MEDIA_DBR *mr)
{
int stat;
MEDIA_DBR omr;
- if (!db_get_media_record(mdb, mr)) {
+ db_lock(mdb);
+ if (!db_get_media_record(jcr, mdb, mr)) {
Mmsg0(&mdb->errmsg, "Media record not found.\n");
+ db_unlock(mdb);
return 0;
}
- P(mdb->mutex);
fseek(mdb->mediafd, mr->rec_addr, SEEK_SET);
memset(&omr, 0, sizeof(omr));
stat = fwrite(&omr, sizeof(omr), 1, mdb->mediafd);
- V(mdb->mutex);
+ db_unlock(mdb);
return stat;
}