JFS: make special inodes play nicely with page balancing
This patch fixes up a few problems with jfs's reserved inodes. 1. There is no need for the jfs code setting the I_DIRTY bits in i_state. I am ashamed that the code ever did this, and surprised it hasn't been noticed until now. 2. Make sure special inodes are on an inode hash list. If the inodes are unhashed, __mark_inode_dirty will fail to put the inode on the superblock's dirty list, and the data will not be flushed under memory pressure. 3. Force writing journal data to disk when metapage_writepage is unable to write a metadata page due to pending journal I/O. Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Esse commit está contido em:
@@ -2396,7 +2396,6 @@ static void txUpdateMap(struct tblock * tblk)
|
||||
*/
|
||||
if (tblk->xflag & COMMIT_CREATE) {
|
||||
diUpdatePMap(ipimap, tblk->ino, FALSE, tblk);
|
||||
ipimap->i_state |= I_DIRTY;
|
||||
/* update persistent block allocation map
|
||||
* for the allocation of inode extent;
|
||||
*/
|
||||
@@ -2407,7 +2406,6 @@ static void txUpdateMap(struct tblock * tblk)
|
||||
} else if (tblk->xflag & COMMIT_DELETE) {
|
||||
ip = tblk->u.ip;
|
||||
diUpdatePMap(ipimap, ip->i_ino, TRUE, tblk);
|
||||
ipimap->i_state |= I_DIRTY;
|
||||
iput(ip);
|
||||
}
|
||||
}
|
||||
|
Referência em uma nova issue
Block a user