public inbox for linux-ext4@vger.kernel.org
 help / color / mirror / Atom feed
* Online defragmentation
@ 2007-05-30  7:04 Aneesh Kumar K.V
  2007-05-30  7:48 ` Aneesh Kumar K.V
  2007-05-30 14:10 ` Andreas Dilger
  0 siblings, 2 replies; 4+ messages in thread
From: Aneesh Kumar K.V @ 2007-05-30  7:04 UTC (permalink / raw)
  To: Takashi Sato; +Cc: linux-ext4

Hi Takashi,

I was looking at online defrag code and found that the tmp_inode is 
created with tmp_inode->i_nlink equal to zero. Now i am not sure whether 
i understand the code correctly, but AFAIU we allocate contiguous block 
using this tmp_inode. That means tmp_inode have extent details 
corresponding to the blocks. Now we are mapping the file data found in 
the original inode to this new blocks. Towards the end we does a iput. 
In iput since we have i_nlink as zero it will go ahead and call 
generic_delete_inode which will cause these data blocks to be marked 
free (right ?)


I haven't tested the defrag code. This came up when i was doing the 
online migration. With large file having large number of fragmented 
blocks I was getting the below error during the iput of the temporary 
inode.

"ext4_free_blocks Freeing blocks not in datazone ...."

I was able to fix that by setting i_nlink = 1 which will cause the 
generic_forget_inode to be called


-aneesh

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-05-31  4:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-30  7:04 Online defragmentation Aneesh Kumar K.V
2007-05-30  7:48 ` Aneesh Kumar K.V
2007-05-31  4:05   ` Takashi Sato
2007-05-30 14:10 ` Andreas Dilger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox