• Q
    btrfs: unify the error handling pattern for read_tree_block() · 4eb150d6
    Qu Wenruo 提交于
    We had an error handling pattern for read_tree_block() like this:
    
    	eb = read_tree_block();
    	if (IS_ERR(eb)) {
    		/*
    		 * Handling error here
    		 * Normally ended up with return or goto out.
    		 */
    	} else if (!extent_buffer_uptodate(eb)) {
    		/*
    		 * Different error handling here
    		 * Normally also ended up with return or goto out;
    		 */
    	}
    
    This is fine, but if we want to add extra check for each
    read_tree_block(), the existing if-else-if is not that expandable and
    will take reader some seconds to figure out there is no extra branch.
    
    Here we change it to a more common way, without the extra else:
    
    	eb = read_tree_block();
    	if (IS_ERR(eb)) {
    		/*
    		 * Handling error here
    		 */
    		return eb or goto out;
    	}
    	if (!extent_buffer_uptodate(eb)) {
    		/*
    		 * Different error handling here
    		 */
    		return eb or goto out;
    	}
    
    This also removes some oddball call sites which uses some creative way
    to check error.
    Signed-off-by: NQu Wenruo <wqu@suse.com>
    Reviewed-by: NDavid Sterba <dsterba@suse.com>
    Signed-off-by: NDavid Sterba <dsterba@suse.com>
    4eb150d6
disk-io.c 146.4 KB