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]
Date:	Fri, 18 Jul 2008 09:43:15 +0900
From:	m-ota@...jp.nec.com
To:	linux-fsdevel@...r.kernel.org, linux-ext4@...r.kernel.org
Subject: what should I do when an error occurred after write_begin()

 Hi, all
 
 ext4 online defrag exchanges the data block in the following procedures.
 
 1. Creates a temporary inode and allocates contiguous blocks.
 2. Read data from original file to memory page by write_begin()
 3. Swap the blocks between the original inode and the temporary inode.
    Updates the extent tree and registers the block to transaction by
    ext4_journal_dirty_metadata().
 4. Write data in memory page to new blocks by write_end().
 
 In the current implementation, when the block swap failed,
 data could not move to the new block.
 So the defrag process exits without calling write_end().
 We try to defrag for the same file again, but the defrag process seems to stall.
 After defrag process stalled, all acess to the file systems like "ls" command
 also stall.
 Both processes wait for unlock j_wait_transaction_locked.
 
 If the block exchange between write_begin() and write_end() failed,
 what should I do?
 
 Any advice is welcome, thank you.
     Mikako ohta
--
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