Hi, Thanks for that SysRq tip. Now I am able to get some logs. From OOPS message, it showed an assertion failure on J_ASSERT_JH(jh, jh->b_transaction == journal->j_committing_transaction); In my code, I've modified journal_commit_transaction such that it collects all buffer_head in a linked list, with their corresponding buffer numbers in other list. I collect all buffers (data + metadata ) and push them all simultaneously and pass list of block numbers through a special ioctl call. The problem that I see in my code is that all buffers are handled in same way as all data buffers in original code. ie metadata buffers are getting unfiled instead of refiling. I am attaching my patch. Please can you see and check if that indeed is problem here? Also what can be possible solution to it? separation of buffers in 2 list (data, metadata) and handling them separately? (Being a kernel noob, my coding does not conform to any standard. So please point out any blunders I've committed in my patch) Thank You Niraj