X-Git-Url: http://git.monstr.eu/?a=blobdiff_plain;f=fs%2Fdax.c;h=2cc43cd914eb8332e3c1ccbdcfafa2e6ce64baee;hb=6370740e5f8ef12de7f9a9bf48a0393d202cd827;hp=6bf81f931de39e48bc2983a1c901b1a6643443f8;hpb=619e17cf75dd58905aa67ccd494a6ba5f19d6cc6;p=linux-2.6-microblaze.git diff --git a/fs/dax.c b/fs/dax.c index 6bf81f931de3..2cc43cd914eb 100644 --- a/fs/dax.c +++ b/fs/dax.c @@ -220,10 +220,11 @@ static void *get_unlocked_entry(struct xa_state *xas, unsigned int order) for (;;) { entry = xas_find_conflict(xas); + if (!entry || WARN_ON_ONCE(!xa_is_value(entry))) + return entry; if (dax_entry_order(entry) < order) return XA_RETRY_ENTRY; - if (!entry || WARN_ON_ONCE(!xa_is_value(entry)) || - !dax_is_locked(entry)) + if (!dax_is_locked(entry)) return entry; wq = dax_entry_waitqueue(xas, entry, &ewait.key);