Skip to content

Commit

Permalink
Add logs for module/zfs folder
Browse files Browse the repository at this point in the history
  • Loading branch information
Raj Kumar Soni authored and Raj Kumar Soni committed Sep 2, 2021
1 parent e122a83 commit 26b6299
Show file tree
Hide file tree
Showing 28 changed files with 777 additions and 129 deletions.
65 changes: 61 additions & 4 deletions module/zfs/dbuf.c
Original file line number Diff line number Diff line change
Expand Up @@ -1425,21 +1425,28 @@ dbuf_read_verify_dnode_crypt(dmu_buf_impl_t *db, uint32_t flags)
ASSERT(MUTEX_HELD(&db->db_mtx));

if (!os->os_encrypted || os->os_raw_receive ||
(flags & DB_RF_NO_DECRYPT) != 0)
(flags & DB_RF_NO_DECRYPT) != 0) {
TraceEvent(8, "%s:%d: Returning 0\n",
__func__, __LINE__);
return (0);
}

DB_DNODE_ENTER(db);
dn = DB_DNODE(db);
dnode_abuf = (dn->dn_dbuf != NULL) ? dn->dn_dbuf->db_buf : NULL;

if (dnode_abuf == NULL || !arc_is_encrypted(dnode_abuf)) {
DB_DNODE_EXIT(db);
TraceEvent(8, "%s:%d: Returning 0\n",
__func__, __LINE__);
return (0);
}

SET_BOOKMARK(&zb, dmu_objset_id(os),
DMU_META_DNODE_OBJECT, 0, dn->dn_dbuf->db_blkid);
err = arc_untransform(dnode_abuf, os->os_spa, &zb, B_TRUE);
dprintf("%s:%d: Setting err = %d from arc_untransform\n",
__func__, __LINE__, err);

/*
* An error code of EACCES tells us that the key is still not
Expand All @@ -1454,6 +1461,12 @@ dbuf_read_verify_dnode_crypt(dmu_buf_impl_t *db, uint32_t flags)

DB_DNODE_EXIT(db);

if (err)
dprintf("%s:%d: Returning %d\n", __func__, __LINE__, err);
else
TraceEvent(8, "%s:%d: Returning %d\n",
__func__, __LINE__, err);

return (err);
}

Expand Down Expand Up @@ -1554,6 +1567,13 @@ dbuf_read_impl(dmu_buf_impl_t *db, zio_t *zio, uint32_t flags,
DB_DNODE_EXIT(db);
mutex_exit(&db->db_mtx);
dmu_buf_unlock_parent(db, dblt, tag);

if (err)
dprintf("%s:%d: Returning %d\n", __func__, __LINE__, err);
else
TraceEvent(8, "%s:%d: Returning %d\n", __func__, __LINE__,
err);

return (err);
}

Expand Down Expand Up @@ -1642,6 +1662,9 @@ dbuf_read(dmu_buf_impl_t *db, zio_t *zio, uint32_t flags)
boolean_t prefetch;
dnode_t *dn;

TraceEvent(8, "%s:%d: db = 0x%p, zio = 0x%p, flags = %d\n",
__func__, __LINE__, db, zio, flags);

/*
* We don't have to hold the mutex to check db_state because it
* can't be freed while we have a hold on the buffer.
Expand Down Expand Up @@ -1686,6 +1709,8 @@ dbuf_read(dmu_buf_impl_t *db, zio_t *zio, uint32_t flags)
db->db.db_object, db->db_level, db->db_blkid);
dbuf_fix_old_data(db, spa_syncing_txg(spa));
err = arc_untransform(db->db_buf, spa, &zb, B_FALSE);
dprintf("%s:%d: Setting err = %d from "
"arc_untransform\n", __func__, __LINE__, err);
dbuf_set_data(db, db->db_buf);
}
mutex_exit(&db->db_mtx);
Expand Down Expand Up @@ -1761,10 +1786,17 @@ dbuf_read(dmu_buf_impl_t *db, zio_t *zio, uint32_t flags)
}
if (db->db_state == DB_UNCACHED)
err = SET_ERROR(EIO);

mutex_exit(&db->db_mtx);
}
}

if (err)
dprintf("%s:%d: Returning %d\n", __func__, __LINE__, err);
else
TraceEvent(8, "%s:%d: Returning %d\n",
__func__, __LINE__, err);

return (err);
}

Expand Down Expand Up @@ -2909,6 +2941,10 @@ dbuf_findbp(dnode_t *dn, int level, uint64_t blkid, int fail_sparse,
*parentp = NULL;
*bpp = NULL;

TraceEvent(8, "%s:%d: dn = 0x%p, level = %d, blkid = %llu,"
" fail_sparse = %d\n", __func__, __LINE__,
dn, level, blkid, fail_sparse);

ASSERT(blkid != DMU_BONUS_BLKID);

if (blkid == DMU_SPILL_BLKID) {
Expand All @@ -2921,6 +2957,7 @@ dbuf_findbp(dnode_t *dn, int level, uint64_t blkid, int fail_sparse,
dbuf_add_ref(dn->dn_dbuf, NULL);
*parentp = dn->dn_dbuf;
mutex_exit(&dn->dn_mtx);
TraceEvent(8, "%s:%d: Returning 0\n", __func__, __LINE__);
return (0);
}

Expand Down Expand Up @@ -2954,6 +2991,8 @@ dbuf_findbp(dnode_t *dn, int level, uint64_t blkid, int fail_sparse,
(fail_sparse &&
blkid > (dn->dn_phys->dn_maxblkid >> (level * epbs)))) {
/* the buffer has no parent yet */
TraceEvent(5, "%s:%d: Returning ENOENT = %d\n",
__func__, __LINE__, ENOENT);
return (SET_ERROR(ENOENT));
} else if (level < nlevels-1) {
/* this block is referenced from an indirect block */
Expand All @@ -2962,13 +3001,18 @@ dbuf_findbp(dnode_t *dn, int level, uint64_t blkid, int fail_sparse,
err = dbuf_hold_impl(dn, level + 1,
blkid >> epbs, fail_sparse, FALSE, NULL, parentp);

if (err)
if (err) {
dprintf("%s:%d: Returning %d\n",
__func__, __LINE__, err);
return (err);
}
err = dbuf_read(*parentp, NULL,
(DB_RF_HAVESTRUCT | DB_RF_NOPREFETCH | DB_RF_CANFAIL));
if (err) {
dbuf_rele(*parentp, NULL);
*parentp = NULL;
dprintf("%s:%d: Returning %d\n", __func__,
__LINE__, err);
return (err);
}
rw_enter(&(*parentp)->db_rwlock, RW_READER);
Expand All @@ -2977,6 +3021,8 @@ dbuf_findbp(dnode_t *dn, int level, uint64_t blkid, int fail_sparse,
if (blkid > (dn->dn_phys->dn_maxblkid >> (level * epbs)))
ASSERT(BP_IS_HOLE(*bpp));
rw_exit(&(*parentp)->db_rwlock);
TraceEvent(8, "%s:%d: Returning 0\n",
__func__, __LINE__);
return (0);
} else {
/* the block is referenced from the dnode */
Expand All @@ -2988,6 +3034,7 @@ dbuf_findbp(dnode_t *dn, int level, uint64_t blkid, int fail_sparse,
*parentp = dn->dn_dbuf;
}
*bpp = &dn->dn_phys->dn_blkptr[blkid];
TraceEvent(8, "%s:%d: Returning 0\n", __func__, __LINE__);
return (0);
}
}
Expand Down Expand Up @@ -3490,8 +3537,12 @@ dbuf_hold_impl(dnode_t *dn, uint8_t level, uint64_t blkid,
blkptr_t *bp = NULL;
int err;

if (fail_uncached)
if (fail_uncached) {
TraceEvent(5, "%s:%d: ail_uncached = %d."
" Returning ENOENT = %d\n",
__func__, __LINE__, fail_uncached, ENOENT);
return (SET_ERROR(ENOENT));
}

ASSERT3P(parent, ==, NULL);
err = dbuf_findbp(dn, level, blkid, fail_sparse, &parent, &bp);
Expand All @@ -3501,11 +3552,16 @@ dbuf_hold_impl(dnode_t *dn, uint8_t level, uint64_t blkid,
if (err) {
if (parent)
dbuf_rele(parent, NULL);
dprintf("%s:%d: Returning %d\n",
__func__, __LINE__, err);
return (err);
}
}
if (err && err != ENOENT)
if (err && err != ENOENT) {
dprintf("%s:%d: Returning %d\n", __func__,
__LINE__, err);
return (err);
}
db = dbuf_create(dn, level, blkid, parent, bp);
}

Expand Down Expand Up @@ -3567,6 +3623,7 @@ dbuf_hold_impl(dnode_t *dn, uint8_t level, uint64_t blkid,
ASSERT3U(db->db_level, ==, level);
*dbp = db;

TraceEvent(8, "%s:%d: Returning 0\n", __func__, __LINE__);
return (0);
}

Expand Down
42 changes: 39 additions & 3 deletions module/zfs/dmu.c
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ dmu_buf_hold_noread_by_dnode(dnode_t *dn, uint64_t offset,
}

*dbp = &db->db;
TraceEvent(8, "%s:%d: Returning 0\n", __func__, __LINE__);
return (0);
}
int
Expand All @@ -184,8 +185,10 @@ dmu_buf_hold_noread(objset_t *os, uint64_t object, uint64_t offset,
int err;

err = dnode_hold(os, object, FTAG, &dn);
if (err)
if (err) {
dprintf("%s:%d: Returning %d\n", __func__, __LINE__, err);
return (err);
}
rw_enter(&dn->dn_struct_rwlock, RW_READER);
blkid = dbuf_whichblock(dn, 0, offset);
db = dbuf_hold(dn, blkid, tag);
Expand All @@ -198,6 +201,12 @@ dmu_buf_hold_noread(objset_t *os, uint64_t object, uint64_t offset,
}

*dbp = &db->db;

if (err)
dprintf("%s:%d: Returning %d\n", __func__, __LINE__, err);
else
TraceEvent(8, "%s:%d: Returning %d\n", __func__,
__LINE__, err);
return (err);
}

Expand All @@ -208,6 +217,9 @@ dmu_buf_hold_by_dnode(dnode_t *dn, uint64_t offset,
int err;
int db_flags = DB_RF_CANFAIL;

TraceEvent(8, "%s:%d: dn = 0x%p, offset = %llu, tag = 0x%p, "
"dbp = 0x%p, flags = %d\n", __func__, __LINE__,
dn, offset, tag, dbp, flags);
if (flags & DMU_READ_NO_PREFETCH)
db_flags |= DB_RF_NOPREFETCH;
if (flags & DMU_READ_NO_DECRYPT)
Expand All @@ -223,6 +235,12 @@ dmu_buf_hold_by_dnode(dnode_t *dn, uint64_t offset,
}
}

if (err)
dprintf("%s:%d: Returning %d\n", __func__, __LINE__, err);
else
TraceEvent(8, "%s:%d: Returning %d\n", __func__,
__LINE__, err);

return (err);
}

Expand All @@ -248,6 +266,12 @@ dmu_buf_hold(objset_t *os, uint64_t object, uint64_t offset,
}
}

if (err)
dprintf("%s:%d: Returning %d\n", __func__, __LINE__, err);
else
TraceEvent(8, "%s:%d: Returning %d\n", __func__,
__LINE__, err);

return (err);
}

Expand Down Expand Up @@ -377,10 +401,13 @@ int dmu_bonus_hold_by_dnode(dnode_t *dn, void *tag, dmu_buf_t **dbp,
dnode_evict_bonus(dn);
dbuf_rele(db, tag);
*dbp = NULL;
dprintf("%s:%d: Returning %d\n", __func__, __LINE__, error);
return (error);
}

*dbp = &db->db;

TraceEvent(8, "%s:%d: Returning 0\n", __func__, __LINE__);
return (0);
}

Expand All @@ -391,12 +418,16 @@ dmu_bonus_hold(objset_t *os, uint64_t object, void *tag, dmu_buf_t **dbp)
int error;

error = dnode_hold(os, object, FTAG, &dn);
if (error)
if (error) {
dprintf("%s:%d: Returning %d\n", __func__, __LINE__, error);
return (error);
}

error = dmu_bonus_hold_by_dnode(dn, tag, dbp, DMU_READ_NO_PREFETCH);
dnode_rele(dn, FTAG);

if (error)
dprintf("%s:%d: Returning %d\n", __func__, __LINE__, error);
return (error);
}

Expand Down Expand Up @@ -1870,10 +1901,15 @@ dmu_object_set_blocksize(objset_t *os, uint64_t object, uint64_t size, int ibs,
int err;

err = dnode_hold(os, object, FTAG, &dn);
if (err)
if (err) {
dprintf("%s:%d: Returning error %d\n", __func__, __LINE__,
err);
return (err);
}
err = dnode_set_blksz(dn, size, ibs, tx);
dnode_rele(dn, FTAG);

dprintf("%s:%d: Returning %d\n", __func__, __LINE__, err);
return (err);
}

Expand Down
6 changes: 5 additions & 1 deletion module/zfs/dmu_object.c
Original file line number Diff line number Diff line change
Expand Up @@ -288,14 +288,18 @@ dmu_object_claim_dnsize(objset_t *os, uint64_t object, dmu_object_type_t ot,

err = dnode_hold_impl(os, object, DNODE_MUST_BE_FREE, dn_slots,
FTAG, &dn);
if (err)
if (err) {
dprintf("%s:%d: returning error %d\n", __func__, __LINE__,
err);
return (err);
}

dnode_allocate(dn, ot, blocksize, 0, bonustype, bonuslen, dn_slots, tx);
dmu_tx_add_new_object(tx, dn);

dnode_rele(dn, FTAG);

TraceEvent(8, "%s:%d: Returning 0\n", __func__, __LINE__);
return (0);
}

Expand Down
Loading

0 comments on commit 26b6299

Please sign in to comment.