Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 62688e5b authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull UDF, ext3 & reiserfs fixes from Jan Kara:
 "A couple of fixes (udf, reiserfs, ext3) that accumulated over my
  vacation."

* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
  udf: fix retun value on error path in udf_load_logicalvol
  jbd: don't write superblock when unmounting an ro filesystem
  reiserfs: fix deadlocks with quotas
  quota: Move down dqptr_sem read after initializing default warn[] type at __dquot_alloc_space().
  UDF: During mount free lvid_bh before rescanning with different blocksize
  udf: fix udf_setsize() for file data in ICB
parents f4673d6f 68766a2e
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1113,6 +1113,11 @@ static void mark_journal_empty(journal_t *journal)

	BUG_ON(!mutex_is_locked(&journal->j_checkpoint_mutex));
	spin_lock(&journal->j_state_lock);
	/* Is it already empty? */
	if (sb->s_start == 0) {
		spin_unlock(&journal->j_state_lock);
		return;
	}
	jbd_debug(1, "JBD: Marking journal as empty (seq %d)\n",
        	  journal->j_tail_sequence);

+1 −1
Original line number Diff line number Diff line
@@ -1589,10 +1589,10 @@ int __dquot_alloc_space(struct inode *inode, qsize_t number, int flags)
		goto out;
	}

	down_read(&sb_dqopt(inode->i_sb)->dqptr_sem);
	for (cnt = 0; cnt < MAXQUOTAS; cnt++)
		warn[cnt].w_type = QUOTA_NL_NOWARN;

	down_read(&sb_dqopt(inode->i_sb)->dqptr_sem);
	spin_lock(&dq_data_lock);
	for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
		if (!dquots[cnt])
+0 −2
Original line number Diff line number Diff line
@@ -1334,9 +1334,7 @@ struct buffer_head *reiserfs_read_bitmap_block(struct super_block *sb,
	else if (bitmap == 0)
		block = (REISERFS_DISK_OFFSET_IN_BYTES >> sb->s_blocksize_bits) + 1;

	reiserfs_write_unlock(sb);
	bh = sb_bread(sb, block);
	reiserfs_write_lock(sb);
	if (bh == NULL)
		reiserfs_warning(sb, "sh-2029: %s: bitmap block (#%u) "
		                 "reading failed", __func__, block);
+1 −1
Original line number Diff line number Diff line
@@ -76,10 +76,10 @@ void reiserfs_evict_inode(struct inode *inode)
		;
	}
      out:
	reiserfs_write_unlock_once(inode->i_sb, depth);
	clear_inode(inode);	/* note this must go after the journal_end to prevent deadlock */
	dquot_drop(inode);
	inode->i_blocks = 0;
	reiserfs_write_unlock_once(inode->i_sb, depth);
	return;

no_delete:
+4 −1
Original line number Diff line number Diff line
@@ -1124,14 +1124,17 @@ int udf_setsize(struct inode *inode, loff_t newsize)
				if (err)
					return err;
				down_write(&iinfo->i_data_sem);
			} else
			} else {
				iinfo->i_lenAlloc = newsize;
				goto set_size;
			}
		}
		err = udf_extend_file(inode, newsize);
		if (err) {
			up_write(&iinfo->i_data_sem);
			return err;
		}
set_size:
		truncate_setsize(inode, newsize);
		up_write(&iinfo->i_data_sem);
	} else {
Loading