backref.c (538f72cdf03cad1c21c551ea542c8ce7d9fa2d81) backref.c (95def2ede1a9dd12b164932eaf5fefb67aefc41c)
1/*
2 * Copyright (C) 2011 STRATO. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public
6 * License v2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,

--- 374 unchanged lines hidden (view full) ---

383 */
384 list_for_each_entry_safe(ref, ref_safe, head, list) {
385 if (ref->parent) /* already direct */
386 continue;
387 if (ref->count == 0)
388 continue;
389 err = __resolve_indirect_ref(fs_info, path, time_seq, ref,
390 parents, extent_item_pos);
1/*
2 * Copyright (C) 2011 STRATO. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public
6 * License v2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,

--- 374 unchanged lines hidden (view full) ---

383 */
384 list_for_each_entry_safe(ref, ref_safe, head, list) {
385 if (ref->parent) /* already direct */
386 continue;
387 if (ref->count == 0)
388 continue;
389 err = __resolve_indirect_ref(fs_info, path, time_seq, ref,
390 parents, extent_item_pos);
391 if (err == -ENOMEM)
392 goto out;
393 if (err)
391 /*
392 * we can only tolerate ENOENT,otherwise,we should catch error
393 * and return directly.
394 */
395 if (err == -ENOENT) {
394 continue;
396 continue;
397 } else if (err) {
398 ret = err;
399 goto out;
400 }
395
396 /* we put the first parent into the ref at hand */
397 ULIST_ITER_INIT(&uiter);
398 node = ulist_next(parents, &uiter);
399 ref->parent = node ? node->val : 0;
400 ref->inode_list = node ?
401 (struct extent_inode_elem *)(uintptr_t)node->aux : NULL;
402

--- 1453 unchanged lines hidden ---
401
402 /* we put the first parent into the ref at hand */
403 ULIST_ITER_INIT(&uiter);
404 node = ulist_next(parents, &uiter);
405 ref->parent = node ? node->val : 0;
406 ref->inode_list = node ?
407 (struct extent_inode_elem *)(uintptr_t)node->aux : NULL;
408

--- 1453 unchanged lines hidden ---