X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fobdclass%2Fcl_io.c;h=d90be9cdc08b8723bbb812f48c8fce70626bf2a1;hp=d5d52d905765779f59f1996d544d53600b625c8f;hb=e2af7fb3c91dfb13d34d8e1b2f2df8c09621f768;hpb=f49d4116040818a8b3888df55dacb1f16b0b65c6 diff --git a/lustre/obdclass/cl_io.c b/lustre/obdclass/cl_io.c index d5d52d9..d90be9c 100644 --- a/lustre/obdclass/cl_io.c +++ b/lustre/obdclass/cl_io.c @@ -1,6 +1,4 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * +/* * GPL HEADER START * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -28,6 +26,8 @@ /* * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. + * + * Copyright (c) 2011, 2012, Whamcloud, Inc. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -39,9 +39,6 @@ */ #define DEBUG_SUBSYSTEM S_CLASS -#ifndef EXPORT_SYMTAB -# define EXPORT_SYMTAB -#endif #include #include @@ -377,7 +374,13 @@ static int cl_lockset_lock_one(const struct lu_env *env, ENTRY; - lock = cl_lock_request(env, io, &link->cill_descr, "io", io); + if (io->ci_lockreq == CILR_PEEK) { + lock = cl_lock_peek(env, io, &link->cill_descr, "io", io); + if (lock == NULL) + lock = ERR_PTR(-ENODATA); + } else + lock = cl_lock_request(env, io, &link->cill_descr, "io", io); + if (!IS_ERR(lock)) { link->cill_lock = lock; cfs_list_move(&link->cill_linkage, &set->cls_curr); @@ -1543,7 +1546,6 @@ void cl_req_page_add(const struct lu_env *env, ENTRY; page = cl_page_top(page); - LINVRNT(cl_page_is_vmlocked(env, page)); LASSERT(cfs_list_empty(&page->cp_flight)); LASSERT(page->cp_req == NULL); @@ -1578,7 +1580,6 @@ void cl_req_page_done(const struct lu_env *env, struct cl_page *page) ENTRY; page = cl_page_top(page); - LINVRNT(cl_page_is_vmlocked(env, page)); LASSERT(!cfs_list_empty(&page->cp_flight)); LASSERT(req->crq_nrpages > 0);