Whamcloud - gitweb
using LL_ORIGIN_REMOVEPAGE origin flag instead of 0 for llap_from_page call in
authorshadow <shadow>
Thu, 24 May 2007 19:18:14 +0000 (19:18 +0000)
committershadow <shadow>
Thu, 24 May 2007 19:18:14 +0000 (19:18 +0000)
ll_removepage

b=11817
i=shadow
i=adilger

lustre/ChangeLog
lustre/llite/rw.c

index b324048..b103215 100644 (file)
@@ -182,6 +182,15 @@ Details    : Lov_mds_md was not free in an error handler in mds_create_object.
              req->rq_repmsg->transno) in ptlrpc_replay_interpret.  Fcc should 
              be freed no matter whether fsfilt_commit success or not.
 
+Severity   : minor
+Frequency  : only with huge count clients
+Bugzilla   : 11817
+Description: Prevents from taking the superblock lock in llap_from_page for 
+            a soon died page.
+Details    : using LL_ORIGIN_REMOVEPAGE origin flag instead of LL_ORIGIN_UNKNOW 
+            for llap_from_page call in ll_removepage prevents from taking the 
+            superblock lock for a soon died page.
+
 --------------------------------------------------------------------------------
 
 2007-05-03  Cluster File Systems, Inc. <info@clusterfs.com>
index ca8e6b3..17a696f 100644 (file)
@@ -914,7 +914,7 @@ void ll_removepage(struct page *page)
                 return;
         }
 
-        llap = llap_from_page(page, 0);
+        llap = llap_from_page(page, LLAP_ORIGIN_REMOVEPAGE);
         if (IS_ERR(llap)) {
                 CERROR("page %p ind %lu couldn't find llap: %ld\n", page,
                        page->index, PTR_ERR(llap));