Hi Donato, On Wed, Jul 8, 2009 at 1:14 PM, Donato Capitella<d.capitella@xxxxxx> wrote: > Hi there, > I wrote a dummy function to write to the reserved inode. This is as far > as I got and I have a few questions: > > /**************************************************************/ > void dummy_write_to_inode(struct inode *ino) > { > struct buffer_head *bh; > handle_t *handle; > int err, blk; > char dummy_text[] = "The crazy fox jumps over the lazy dog!"; > > handle = ext3_start_journal(inode, 2); > if (IS_ERR(handle)) > goto err; > > /* allocate a block */ > blk = ext3_new_block(handle, inode, 1, &err); > if (err) > goto err; > > EXT3_I(inode)->i_data[0] = blk > > /* write something to the block */ > bh = sb_bread(ino->sb, blk); > if (IS_ERR(bh)) > goto err; > > memcpy(bh->b_data, dummy_text, sizeof(dummy_text)); > mark_buffer_dirty(bh); > brelse(bh); > > i_size_write(inode, sizeof(dummy_text)); > mark_inode_dirty(inode); > ext3_sync_inode(handle, ino); > ext3_journal_stop(handle); > > > err: > /* ... error handling code ... */ > } > /**************************************************************/ > > For some reason, this code doesn't work as I expected. The block is > actually written and at the end contains "The lazy fox jumps over the > lazy dog". The problem is with the inode: it just gets partially > updated. The block pointer to the first block is updated but the size > stays zero. How is it possibile that half of the inode gets updated and > the other half doesn't? What am I missing here? > try syncing the inode. This should probably help. > Thanks, > Donato > > p.s.: I'd also like to know if there is a "smarter" way to write to an > inode that automatically allocates blocks when needed and the like... > > > -- > To unsubscribe from this list: send an email with > "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx > Please read the FAQ at http://kernelnewbies.org/FAQ > > -- Regards, Sandeep. “To learn is to change. Education is a process that changes the learner.” -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ