MCPcopy Create free account
hub / github.com/bobranten/Ext4Fsd / bmap

Function bmap

Ext4Fsd/linux.c:924–967  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

922//
923
924ULONGLONG bmap(struct inode *i, ULONGLONG b)
925{
926 ULONGLONG lcn = 0;
927 struct super_block *s = i->i_sb;
928
929 PEXT2_MCB Mcb = (PEXT2_MCB)i->i_priv;
930 PEXT2_VCB Vcb = (PEXT2_VCB)s->s_priv;
931 PEXT2_EXTENT extent = NULL;
932 ULONGLONG offset = (ULONGLONG)b;
933 NTSTATUS status;
934
935 if (!Mcb || !Vcb) {
936 goto errorout;
937 }
938
939 offset <<= BLOCK_BITS;
940 status = Ext2BuildExtents(
941 NULL,
942 Vcb,
943 Mcb,
944 offset,
945 BLOCK_SIZE,
946 FALSE,
947 &extent
948 );
949
950 if (!NT_SUCCESS(status)) {
951 goto errorout;
952 }
953
954 if (extent == NULL) {
955 goto errorout;
956 }
957
958 lcn = (unsigned long)(extent->Lba >> BLOCK_BITS);
959
960errorout:
961
962 if (extent) {
963 Ext2FreeExtent(extent);
964 }
965
966 return lcn;
967}
968
969void iget(struct inode *inode)
970{

Callers 3

journal_bmapFunction · 0.85
jbd2_journal_bmapFunction · 0.85
jbd2_journal_init_inodeFunction · 0.85

Calls 2

Ext2BuildExtentsFunction · 0.85
Ext2FreeExtentFunction · 0.85

Tested by

no test coverage detected