lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID:  <20081224211038.GT4127@blitiri.com.ar>
Date:	Wed, 24 Dec 2008 19:10:38 -0200
From:	Alberto Bertogli <albertito@...tiri.com.ar>
To:	linux-ext4@...r.kernel.org
Cc:	linux-mm-cc@...ts.laptop.org, linux-ext4@...r.kernel.org
Subject:  jbd2 inside a device mapper module


Hi!

I'm writing a small device mapper module, and I'm interested in placing
a jbd/jdb2 journal on the backing device.

I started by trying to do a __bread() manually (just for early tests)
inside my map function. But it got stucked, as far as I could see,
waiting for a buffer head in wait_on_buffer() IIRC (I could track it
down again if it's needed). And I couldn't find why it was locked, since
it was an unused loopback device, and my code didn't even deal with
buffer heads.

Then, since I was planning on using jbd/jdb2 anyway, I decided to use it
(and went for jbd2).


Now, I'm having issues with journal creation.

I tried using "mkfs.ext3 -O journal_dev", but jbd2_journal_load()
complains that it can't find the journal superblock.

And if I modify jbd2_journal_create(), removing the 'if
(journal->j_inode == NULL)' check (I imagine it's there for a reason,
but from a quick look at the code couldn't find it and thought it was
worth a try) then when creating it I get a warning (pasted below) and it
gets locked up, which I think may be related to what happened when I did
__bread(), but obviously I'm not sure at all.

And I got stucked there, so I thought it'd be better to ask. Does anyone
have any ideas or suggestions on what I'm doing wrong?


I've not published my code yet because it's really rough, but if anyone
wants to take a look at it, please let me know. I was planning on
posting it when it was at least working.

Thanks a lot,
		Alberto



[42949814.780000] ------------[ cut here ]------------
[42949814.780000] WARNING: at /pub/src/linux/linux-2.6/fs/buffer.c:1186 mark_buffer_dirty+0x77/0xa0()
[42949814.780000] Modules linked in:
[42949814.780000] Call Trace:
[42949814.780000] 678f17d8:  [<6003988b>] warn_on_slowpath+0x5b/0x80
[42949814.780000] 678f1818:  [<600bbe9a>] __find_get_block_slow+0x7a/0x110
[42949814.780000] 678f1858:  [<600bc219>] __find_get_block+0x79/0x180
[42949814.780000] 678f1888:  [<60033b05>] __might_sleep+0x105/0x130
[42949814.780000] 678f18c8:  [<600bc353>] __getblk+0x33/0x270
[42949814.780000] 678f18f8:  [<600bc7e7>] mark_buffer_dirty+0x77/0xa0
[42949814.780000] 678f1918:  [<6012b1a8>] jbd2_journal_create+0x88/0x170
[42949814.780000] 678f1958:  [<601aac70>] csum_ctr+0x1b0/0x240
[42949814.780000] 678f1968:  [<6019b810>] get_target_type+0x60/0xa0
[42949814.780000] 678f19a8:  [<6019b0d4>] dm_table_add_target+0x174/0x3b0
[42949814.780000] 678f1a08:  [<6019d057>] table_load+0xb7/0x200
[42949814.780000] 678f1a68:  [<6019dd98>] dm_ctl_ioctl+0x288/0x300
[42949814.780000] 678f1a98:  [<6019cfa0>] table_load+0x0/0x200
[42949814.780000] 678f1c18:  [<600a82fb>] vfs_ioctl+0x1b/0x70
[42949814.780000] 678f1c28:  [<600a8770>] do_vfs_ioctl+0x400/0x660
[42949814.780000] 678f1ca8:  [<600a8a1a>] sys_ioctl+0x4a/0x80
[42949814.780000] 678f1ce8:  [<6001a310>] handle_syscall+0x50/0x80
[42949814.780000] 678f1d08:  [<6002bf1f>] userspace+0x3ff/0x530
[42949814.780000] 678f1fc8:  [<60017012>] fork_handler+0x62/0x70
[42949814.780000]
[42949814.780000] ---[ end trace ebc125a00ee8f9d2 ]---


--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ