diff options
Diffstat (limited to 'fs/jbd')
| -rw-r--r-- | fs/jbd/journal.c | 8 | ||||
| -rw-r--r-- | fs/jbd/revoke.c | 12 | ||||
| -rw-r--r-- | fs/jbd/transaction.c | 12 | 
3 files changed, 13 insertions, 19 deletions
diff --git a/fs/jbd/journal.c b/fs/jbd/journal.c index 2d04f9afafd..06fe11e0abf 100644 --- a/fs/jbd/journal.c +++ b/fs/jbd/journal.c @@ -573,7 +573,7 @@ int log_wait_commit(journal_t *journal, tid_t tid)  #ifdef CONFIG_JBD_DEBUG  	spin_lock(&journal->j_state_lock);  	if (!tid_geq(journal->j_commit_request, tid)) { -		printk(KERN_EMERG +		printk(KERN_ERR  		       "%s: error: j_commit_request=%d, tid=%d\n",  		       __func__, journal->j_commit_request, tid);  	} @@ -604,10 +604,8 @@ int log_wait_commit(journal_t *journal, tid_t tid)  out_unlock:  	spin_unlock(&journal->j_state_lock); -	if (unlikely(is_journal_aborted(journal))) { -		printk(KERN_EMERG "journal commit I/O error\n"); +	if (unlikely(is_journal_aborted(journal)))  		err = -EIO; -	}  	return err;  } @@ -2136,7 +2134,7 @@ static void __exit journal_exit(void)  #ifdef CONFIG_JBD_DEBUG  	int n = atomic_read(&nr_journal_heads);  	if (n) -		printk(KERN_EMERG "JBD: leaked %d journal_heads!\n", n); +		printk(KERN_ERR "JBD: leaked %d journal_heads!\n", n);  #endif  	jbd_remove_debugfs_entry();  	journal_destroy_caches(); diff --git a/fs/jbd/revoke.c b/fs/jbd/revoke.c index 25c713e7071..8898bbd2b61 100644 --- a/fs/jbd/revoke.c +++ b/fs/jbd/revoke.c @@ -231,19 +231,15 @@ record_cache_failure:  static struct jbd_revoke_table_s *journal_init_revoke_table(int hash_size)  { -	int shift = 0; -	int tmp = hash_size; +	int i;  	struct jbd_revoke_table_s *table;  	table = kmem_cache_alloc(revoke_table_cache, GFP_KERNEL);  	if (!table)  		goto out; -	while((tmp >>= 1UL) != 0UL) -		shift++; -  	table->hash_size = hash_size; -	table->hash_shift = shift; +	table->hash_shift = ilog2(hash_size);  	table->hash_table =  		kmalloc(hash_size * sizeof(struct list_head), GFP_KERNEL);  	if (!table->hash_table) { @@ -252,8 +248,8 @@ static struct jbd_revoke_table_s *journal_init_revoke_table(int hash_size)  		goto out;  	} -	for (tmp = 0; tmp < hash_size; tmp++) -		INIT_LIST_HEAD(&table->hash_table[tmp]); +	for (i = 0; i < hash_size; i++) +		INIT_LIST_HEAD(&table->hash_table[i]);  out:  	return table; diff --git a/fs/jbd/transaction.c b/fs/jbd/transaction.c index be0c39b66fe..1695ba8334a 100644 --- a/fs/jbd/transaction.c +++ b/fs/jbd/transaction.c @@ -26,7 +26,6 @@  #include <linux/mm.h>  #include <linux/highmem.h>  #include <linux/hrtimer.h> -#include <linux/backing-dev.h>  static void __journal_temp_unlink_buffer(struct journal_head *jh); @@ -100,10 +99,11 @@ static int start_this_handle(journal_t *journal, handle_t *handle)  alloc_transaction:  	if (!journal->j_running_transaction) { -		new_transaction = kzalloc(sizeof(*new_transaction), GFP_NOFS); +		new_transaction = kzalloc(sizeof(*new_transaction), +						GFP_NOFS|__GFP_NOFAIL);  		if (!new_transaction) { -			congestion_wait(BLK_RW_ASYNC, HZ/50); -			goto alloc_transaction; +			ret = -ENOMEM; +			goto out;  		}  	} @@ -675,7 +675,7 @@ repeat:  					jbd_alloc(jh2bh(jh)->b_size,  							 GFP_NOFS);  				if (!frozen_buffer) { -					printk(KERN_EMERG +					printk(KERN_ERR  					       "%s: OOM for frozen_buffer\n",  					       __func__);  					JBUFFER_TRACE(jh, "oom!"); @@ -898,7 +898,7 @@ repeat:  	if (!jh->b_committed_data) {  		committed_data = jbd_alloc(jh2bh(jh)->b_size, GFP_NOFS);  		if (!committed_data) { -			printk(KERN_EMERG "%s: No memory for committed data\n", +			printk(KERN_ERR "%s: No memory for committed data\n",  				__func__);  			err = -ENOMEM;  			goto out;  | 
