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
Unified · Split
| @@ -1354,13 +1354,6 @@ set_qf_format: · 1353 unmodified lines | ||
| 1354 | 1354 | "not specified."); |
| 1355 | 1355 | return 0; |
| 1356 | 1356 | } |
| 1357 | − } else { | |
| 1358 | − if (sbi->s_jquota_fmt) { | |
| 1359 | − ext3_msg(sb, KERN_ERR, "error: journaled quota format " | |
| 1360 | − "specified with no journaling " | |
| 1361 | − "enabled."); | |
| 1362 | − return 0; | |
| 1363 | − } | |
| 1364 | 1357 | } |
| 1365 | 1358 | #endif |
| 1366 | 1359 | return 1; |
| @@ -93,6 +93,7 @@ · 92 unmodified lines | ||
| 93 | 93 | #include <linux/bio.h> |
| 94 | 94 | #endif |
| 95 | 95 | #include <linux/log2.h> |
| 96 | +#include <linux/hash.h> | |
| 96 | 97 | |
| 97 | 98 | static struct kmem_cache *revoke_record_cache; |
| 98 | 99 | static struct kmem_cache *revoke_table_cache; |
| @@ -129,15 +130,11 @@ static void flush_descriptor(journal_t *, struct journal_head *, int, int); · 30 unmodified lines | ||
| 129 | 130 | |
| 130 | 131 | /* Utility functions to maintain the revoke table */ |
| 131 | 132 | |
| 132 | −/* Borrowed from buffer.c: this is a tried and tested block hash function */ | |
| 133 | 133 | static inline int hash(journal_t *journal, unsigned int block) |
| 134 | 134 | { |
| 135 | 135 | struct jbd_revoke_table_s *table = journal->j_revoke; |
| 136 | − int hash_shift = table->hash_shift; | |
| 137 | 136 | |
| 138 | − return ((block << (hash_shift - 6)) ^ | |
| 139 | − (block >> 13) ^ | |
| 140 | − (block << (hash_shift - 12))) & (table->hash_size - 1); | |
| 137 | + return hash_32(block, table->hash_shift); | |
| 141 | 138 | } |
| 142 | 139 | |
| 143 | 140 | static int insert_revoke_hash(journal_t *journal, unsigned int blocknr, |
| @@ -634,7 +634,7 @@ int dquot_writeback_dquots(struct super_block *sb, int type) · 633 unmodified lines | ||
| 634 | 634 | dqstats_inc(DQST_LOOKUPS); |
| 635 | 635 | err = sb->dq_op->write_dquot(dquot); |
| 636 | 636 | if (!ret && err) |
| 637 | − err = ret; | |
| 637 | + ret = err; | |
| 638 | 638 | dqput(dquot); |
| 639 | 639 | spin_lock(&dq_list_lock); |
| 640 | 640 | } |