···25752575 if (journal->j_dev_bd != NULL) {25762576 if (journal->j_dev_bd->bd_dev != super->s_dev)25772577 bd_release(journal->j_dev_bd);25782578- result = blkdev_put(journal->j_dev_bd, 0); /* move up */25782578+ result = blkdev_put(journal->j_dev_bd, journal->j_dev_mode);25792579 journal->j_dev_bd = NULL;25802580 }25812581···26082608 /* there is no "jdev" option and journal is on separate device */26092609 if ((!jdev_name || !jdev_name[0])) {26102610 journal->j_dev_bd = open_by_devnum(jdev, blkdev_mode);26112611+ journal->j_dev_mode = blkdev_mode;26112612 if (IS_ERR(journal->j_dev_bd)) {26122613 result = PTR_ERR(journal->j_dev_bd);26132614 journal->j_dev_bd = NULL;···26292628 return 0;26302629 }2631263026312631+ journal->j_dev_mode = blkdev_mode;26322632 journal->j_dev_bd = open_bdev_exclusive(jdev_name,26332633- FMODE_READ|FMODE_WRITE, journal);26332633+ blkdev_mode, journal);26342634 if (IS_ERR(journal->j_dev_bd)) {26352635 result = PTR_ERR(journal->j_dev_bd);26362636 journal->j_dev_bd = NULL;
+1
include/linux/reiserfs_fs_sb.h
···178178 struct reiserfs_journal_cnode *j_first; /* oldest journal block. start here for traverse */179179180180 struct block_device *j_dev_bd;181181+ fmode_t j_dev_mode;181182 int j_1st_reserved_block; /* first block on s_dev of reserved area journal */182183183184 unsigned long j_state;