Commit e2488ab6 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull quota and ext3 fixes from Jan Kara.

* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
  fs, jbd: use a more generic hash function
  quota: Properly return errors from dquot_writeback_dquots()
  ext3: Don't check quota format when there are no quota files
parents 89453379 3c9cafe0
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -1354,13 +1354,6 @@ set_qf_format:
					"not specified.");
			return 0;
		}
	} else {
		if (sbi->s_jquota_fmt) {
			ext3_msg(sb, KERN_ERR, "error: journaled quota format "
					"specified with no journaling "
					"enabled.");
			return 0;
		}
	}
#endif
	return 1;
+2 −5
Original line number Diff line number Diff line
@@ -93,6 +93,7 @@
#include <linux/bio.h>
#endif
#include <linux/log2.h>
#include <linux/hash.h>

static struct kmem_cache *revoke_record_cache;
static struct kmem_cache *revoke_table_cache;
@@ -129,15 +130,11 @@ static void flush_descriptor(journal_t *, struct journal_head *, int, int);

/* Utility functions to maintain the revoke table */

/* Borrowed from buffer.c: this is a tried and tested block hash function */
static inline int hash(journal_t *journal, unsigned int block)
{
	struct jbd_revoke_table_s *table = journal->j_revoke;
	int hash_shift = table->hash_shift;

	return ((block << (hash_shift - 6)) ^
		(block >> 13) ^
		(block << (hash_shift - 12))) & (table->hash_size - 1);
	return hash_32(block, table->hash_shift);
}

static int insert_revoke_hash(journal_t *journal, unsigned int blocknr,
+1 −1
Original line number Diff line number Diff line
@@ -634,7 +634,7 @@ int dquot_writeback_dquots(struct super_block *sb, int type)
			dqstats_inc(DQST_LOOKUPS);
			err = sb->dq_op->write_dquot(dquot);
			if (!ret && err)
				err = ret;
				ret = err;
			dqput(dquot);
			spin_lock(&dq_list_lock);
		}