psankar / simplefs

A simple, kernel-space, on-disk filesystem from the scratch
Other
927 stars 219 forks source link

Failed to mount filesystem #5

Open ghost opened 8 years ago

ghost commented 8 years ago

I tried to mount the file system after inserting the simplefs kernel module. But it is giving error while initializing journal block. The dmesg report is given below. kernel version: 3.13.0-32-generic

[24820.367435] The magic number obtained in disk is: [268640275] [24820.367440] simplefs filesystem of version [1] formatted with a block size of [4096] detected in the device. [24820.367465] jbd2_journal_bmap: journal block not found at offset 0 on loop0-2 [24820.367466] jbd2_journal_init_inode: Cannot locate journal superblock [24820.367469] Can't load journal [24820.367471] simplefs superblock is destroyed. Unmount succesful. [24820.367475] Freeing private data of inode ffff8801e940d060 (1) [24820.367506] VFS: Busy inodes after unmount of loop0. Self-destruct in 5 seconds. Have a nice day... [24820.367512] simplefs is succesfully mounted on [/dev/loop0] [24820.367531] BUG: unable to handle kernel NULL pointer dereference at 0000000000000069 [24820.367577] IP: [] mount_fs+0x48/0x1b0 [24820.369308] PGD 161fda067 PUD 1e7c98067 PMD 0 [24820.370693] Oops: 0000 [#2] SMP [24820.372138] Modules linked in: usb_storage simplefs(POF) bbswitch(OF) vmnet(OF) vmw_vsock_vmci_transport vsock vmw_vmci vmmon(OF) rfcomm bnep bluetooth snd_hda_codec_hdmi binfmt_misc nls_iso8859_1 hp_wmi sparse_keymap intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm crct10dif_pclmul crc32_pclmul ghash_clmulni_intel uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_core videodev aesni_intel arc4 aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd rt2800pci rt2800mmio rt2800lib rt2x00pci rt2x00mmio rt2x00lib mac80211 cfg80211 rtsx_pci_ms snd_hda_codec_realtek snd_seq_midi snd_seq_midi_event eeprom_93cx6 memstick nvidia(POF) crc_ccitt snd_rawmidi snd_seq i915 joydev snd_hda_intel serio_raw snd_hda_codec lpc_ich snd_hwdep snd_pcm shpchp snd_page_alloc snd_seq_device drm_kms_helper mei_me snd_timer mei drm snd i2c_algo_bit soundcore wmi video mac_hid parport_pc ppdev lp parport hid_generic usbhid hid rtsx_pci_sdmmc psmouse rtsx_pci ahci r8169 libahci mii [24820.378482] CPU: 3 PID: 17469 Comm: mount Tainted: PF D O 3.13.0-32-generic #57-Ubuntu [24820.379566] Hardware name: Hewlett-Packard HP 15 Notebook PC/2212, BIOS F.16 04/24/2014 [24820.380630] task: ffff8800472017f0 ti: ffff88021b89e000 task.ti: ffff88021b89e000 [24820.381669] RIP: 0010:[] [] mount_fs+0x48/0x1b0 [24820.382724] RSP: 0018:ffff88021b89fe40 EFLAGS: 00010203 [24820.383890] RAX: 0000000000000001 RBX: ffff88024f42b180 RCX: 0000000000000006 [24820.385158] RDX: 0000000000000007 RSI: 0000000000000046 RDI: 0000000000000246 [24820.386208] RBP: ffff88021b89fe78 R08: 0000000000000086 R09: 000000000000060c [24820.387225] R10: 0000000000000000 R11: ffff88021b89fb4e R12: ffffffffa0304000 [24820.388227] R13: 0000000000000000 R14: 0000000000000001 R15: 0000000000000000 [24820.389233] FS: 00007ffad29d1880(0000) GS:ffff88025f2c0000(0000) knlGS:0000000000000000 [24820.390257] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [24820.391262] CR2: 0000000000000069 CR3: 00000002512af000 CR4: 00000000001407e0 [24820.392299] Stack: [24820.393743] ffffffff8116f260 ffff88021b89fe78 ffff88024f42b180 ffffffffa0304000 [24820.394641] ffff880060e0f590 0000000000000000 0000000000000000 ffff88021b89feb0 [24820.395556] ffffffff811dbcd7 ffffffff81c3f880 0000000000000020 0000000000000000 [24820.396505] Call Trace: [24820.397448] [] ? __alloc_percpu+0x10/0x20 [24820.398343] [] vfs_kern_mount+0x67/0x110 [24820.399228] [] do_mount+0x23e/0xad0 [24820.400103] [] ? strndup_user+0x4b/0xf0 [24820.401023] [] SyS_mount+0x83/0xc0 [24820.401885] [] tracesys+0xe1/0xe6 [24820.402739] Code: ec 10 48 85 c9 74 0a f6 47 08 02 0f 84 d2 00 00 00 44 89 fe 4c 89 e7 41 ff 54 24 10 48 3d 00 f0 ff ff 49 89 c6 0f 87 8e 00 00 00 <48> 8b 58 68 48 85 db 0f 84 f7 00 00 00 48 8b 83 d0 00 00 00 48 [24820.404661] RIP [] mount_fs+0x48/0x1b0 [24820.405564] RSP [24820.406464] CR2: 0000000000000069 [24820.411360] ---[ end trace 468305eeb07c0f4d ]---

azat commented 8 years ago

On Thu, Nov 12, 2015 at 10:33:39AM -0800, Shubajit Saha wrote:

I tried to mount the file system after inserting the simplefs kernel module. But it is giving error while initializing journal block. The dmesg report is given below. kernel version: 3.13.0-32-generic

[24820.367435] The magic number obtained in disk is: [268640275] [24820.367440] simplefs filesystem of version [1] formatted with a block size of [4096] detected in the device. [24820.367465] jbd2_journal_bmap: journal block not found at offset 0 on loop0-2 [24820.367466] jbd2_journal_init_inode: Cannot locate journal superblock [24820.367469] Can't load journal

How are you creating journal+fs?

I guess that you don't created correct journal, you can use the following commands to do this (copied from simple-test.sh, and slightly edited): $ function create_journal() { dd bs=1M count=10 if=/dev/zero of="$1" mke2fs -b 4096 -O journal_dev "$1" } $ function create_test_image() { dd bs=4096 count=100 if=/dev/zero of="$1" ./mkfs-simplefs "$1" } $ function mount_fs_image() { insmod simplefs.ko test_journal_dev=$(losetup -f --show "$1") mount -o loop,owner,group,users,journal_path="$test_journal_dev" -t simplefs "$2" "$3" } $ create_test_image image $ create_journal journal $ mount_fs_image journal image /mnt