|
@@ -450,7 +450,7 @@ ino_t ext2_inode_by_name(struct inode *dir, struct qstr *child)
|
|
|
|
|
|
/* Releases the page */
|
|
/* Releases the page */
|
|
void ext2_set_link(struct inode *dir, struct ext2_dir_entry_2 *de,
|
|
void ext2_set_link(struct inode *dir, struct ext2_dir_entry_2 *de,
|
|
- struct page *page, struct inode *inode)
|
|
|
|
|
|
+ struct page *page, struct inode *inode, int update_times)
|
|
{
|
|
{
|
|
loff_t pos = page_offset(page) +
|
|
loff_t pos = page_offset(page) +
|
|
(char *) de - (char *) page_address(page);
|
|
(char *) de - (char *) page_address(page);
|
|
@@ -465,7 +465,8 @@ void ext2_set_link(struct inode *dir, struct ext2_dir_entry_2 *de,
|
|
ext2_set_de_type(de, inode);
|
|
ext2_set_de_type(de, inode);
|
|
err = ext2_commit_chunk(page, pos, len);
|
|
err = ext2_commit_chunk(page, pos, len);
|
|
ext2_put_page(page);
|
|
ext2_put_page(page);
|
|
- dir->i_mtime = dir->i_ctime = CURRENT_TIME_SEC;
|
|
|
|
|
|
+ if (update_times)
|
|
|
|
+ dir->i_mtime = dir->i_ctime = CURRENT_TIME_SEC;
|
|
EXT2_I(dir)->i_flags &= ~EXT2_BTREE_FL;
|
|
EXT2_I(dir)->i_flags &= ~EXT2_BTREE_FL;
|
|
mark_inode_dirty(dir);
|
|
mark_inode_dirty(dir);
|
|
}
|
|
}
|