Code Review
/
kvmfornfv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git]
/
kernel
/
fs
/
jbd2
/
revoke.c
diff --git
a/kernel/fs/jbd2/revoke.c
b/kernel/fs/jbd2/revoke.c
index
14214da
..
705ae57
100644
(file)
--- a/
kernel/fs/jbd2/revoke.c
+++ b/
kernel/fs/jbd2/revoke.c
@@
-141,11
+141,13
@@
static int insert_revoke_hash(journal_t *journal, unsigned long long blocknr,
{
struct list_head *hash_list;
struct jbd2_revoke_record_s *record;
{
struct list_head *hash_list;
struct jbd2_revoke_record_s *record;
+ gfp_t gfp_mask = GFP_NOFS;
-repeat:
- record = kmem_cache_alloc(jbd2_revoke_record_cache, GFP_NOFS);
+ if (journal_oom_retry)
+ gfp_mask |= __GFP_NOFAIL;
+ record = kmem_cache_alloc(jbd2_revoke_record_cache, gfp_mask);
if (!record)
if (!record)
-
goto oom
;
+
return -ENOMEM
;
record->sequence = seq;
record->blocknr = blocknr;
record->sequence = seq;
record->blocknr = blocknr;
@@
-154,13
+156,6
@@
repeat:
list_add(&record->hash, hash_list);
spin_unlock(&journal->j_revoke_lock);
return 0;
list_add(&record->hash, hash_list);
spin_unlock(&journal->j_revoke_lock);
return 0;
-
-oom:
- if (!journal_oom_retry)
- return -ENOMEM;
- jbd_debug(1, "ENOMEM in %s, retrying\n", __func__);
- yield();
- goto repeat;
}
/* Find a revoke record in the journal's hash table. */
}
/* Find a revoke record in the journal's hash table. */
@@
-594,7
+589,7
@@
static void write_one_revoke_record(journal_t *journal,
if (jbd2_journal_has_csum_v2or3(journal))
csum_size = sizeof(struct jbd2_journal_revoke_tail);
if (jbd2_journal_has_csum_v2or3(journal))
csum_size = sizeof(struct jbd2_journal_revoke_tail);
- if (
JBD2_HAS_INCOMPAT_FEATURE(journal, JBD2_FEATURE_INCOMPAT_64BIT
))
+ if (
jbd2_has_feature_64bit(journal
))
sz = 8;
else
sz = 4;
sz = 8;
else
sz = 4;
@@
-624,7
+619,7
@@
static void write_one_revoke_record(journal_t *journal,
*descriptorp = descriptor;
}
*descriptorp = descriptor;
}
- if (
JBD2_HAS_INCOMPAT_FEATURE(journal, JBD2_FEATURE_INCOMPAT_64BIT
))
+ if (
jbd2_has_feature_64bit(journal
))
* ((__be64 *)(&descriptor->b_data[offset])) =
cpu_to_be64(record->blocknr);
else
* ((__be64 *)(&descriptor->b_data[offset])) =
cpu_to_be64(record->blocknr);
else