X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2FChangeLog;h=6a4513f61deb1878769578688fe4ac46364b1fbc;hp=8afb64c97666c1dc09234db2430b62711783c057;hb=59a81cdb1d8ea8372f0e4fa2fb56cd7406cb8c10;hpb=61b90c37deb75e918f044dc2c129d7c858b005a5 diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 8afb64c..6a4513f 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -1,23 +1,51 @@ tbd Sun Microsystems, Inc. * version 2.0.0 * Support for kernels: - 2.6.16.60-0.27 (SLES 10), + 2.6.16.60-0.31 (SLES 10), 2.6.18-92.1.10.el5 (RHEL 5), 2.6.22.14 vanilla (kernel.org). * Client support for unpatched kernels: - (see http://wiki.lustre.org/index.php?title=Patchless_Client) - 2.6.16 - 2.6.21 vanilla (kernel.org) + (see http://wiki.lustre.org/index.php?title=Patchless_Client) + 2.6.16 - 2.6.21 vanilla (kernel.org) * Recommended e2fsprogs version: 1.40.11-sun1 * Note that reiserfs quotas are disabled on SLES 10 in this kernel. * RHEL 4 and RHEL 5/SLES 10 clients behaves differently on 'cd' to a - removed cwd "./" (refer to Bugzilla 14399). + removed cwd "./" (refer to Bugzilla 14399). * File join has been disabled in this release, refer to Bugzilla 16929. + +Severity : enhancement +Bugzilla : 17458 +Description: Update to SLES10 SP2 kernel-2.6.16.60-0.31. + +Severity : enhancement +Bugzilla : 14166 +Description: New client IO stack (CLIO). + +Severity : enhancement +Bugzilla : 15393 +Description: Commit on sharing. Eliminate inter-client dependencies between + uncommitted transactions by doing transaction commits. + Thereby clients may recovery independently. + +Severity : normal +Frequency : Create a symlink file with a very long name +Bugzilla : 16578 +Description: ldlm_cancel_pack()) ASSERTION(max >= dlm->lock_count + count) +Details : If there is no extra space in the request for early cancels, + ldlm_req_handles_avail() returns 0 instead of a negative value. + +Severity : enhancement +Bugzilla : 1819 +Description: Add /proc entry for import status +Details : The mdc, osc, and mgc import directories now have + an import directory that contains useful import data for debugging + connection problems. Severity : enhancement Bugzilla : 15966 Description: Re-disable certain /proc logging Details : Enable and disable client's offset_stats, extents_stats and - extents_stats_per_process stats logging on the fly. + extents_stats_per_process stats logging on the fly. Severity : major Frequency : Only on FC kernels 2.6.22+ @@ -30,13 +58,13 @@ Severity : enhancement Bugzilla : 16643 Description: Generic /proc file permissions Details : Set /Proc file permissions in a more generic way to enable non- - root users operate on some /proc files. + root users operate on some /proc files. Severity : major Bugzilla : 16561 Description: Hitting mdc_commit_close() ASSERTION Details : Properly handle request reference release in - ll_release_openhandle(). + ll_release_openhandle(). Severity : normal Bugzilla : 15975 @@ -50,8 +78,7 @@ Description: Allow OST glimpses to return PW locks Severity : minor Bugzilla : 16717 Description: LBUG when llog conf file is full -Details : When llog bitmap is full, ENOSPC should be returned for plain - log. +Details : When llog bitmap is full, ENOSPC should be returned for plain log. Severity : normal Bugzilla : 16907 @@ -74,8 +101,8 @@ Bugzilla : 16611 Frequency : on recovery Description: I/O failures after umount during fail back Details : if client reconnected to restarted server we need join to recovery - instead of find server handler is changed and process self eviction - with cancel all locks. + instead of find server handler is changed and process self + eviction with cancel all locks. Severity : enhancement Bugzilla : 16633 @@ -190,7 +217,7 @@ Details : Lustre does not destroy flock lock before last reference goes Severity : normal Bugzilla : 15210 -Description: add recount protection for osc callbacks, so avoid panic on shutdown +Description: add refcount protection for osc callbacks, avoid panic on shutdown Severity : normal Bugzilla : 12653 @@ -222,15 +249,15 @@ Details : Need properly lock accesses the flock deadlock detection list. Severity : minor Bugzilla : 15837 Description: oops in page fault handler -Details : kernel page fault handler can return two special 'pages' in error case, don't - try dereference NOPAGE_SIGBUS and NOPAGE_OMM. +Details : kernel page fault handler can return two special 'pages' in error + case, don't try dereference NOPAGE_SIGBUS and NOPAGE_OMM. Severity : minor Bugzilla : 15716 Description: timeout with invalidate import. -Details : ptlrpcd_check call obd_zombie_impexp_cull and wait request which should be - handled by ptlrpcd. This produce long age waiting and -ETIMEOUT - ptlrpc_invalidate_import and as result LASSERT. +Details : ptlrpcd_check call obd_zombie_impexp_cull and wait request which + should be handled by ptlrpcd. This produce long age waiting and + -ETIMEOUT ptlrpc_invalidate_import and as result LASSERT. Severity : enhancement Bugzilla : 15741 @@ -317,7 +344,7 @@ Details : Move the 'good_osts' check before the 'total_bavail' check. This Severity : major Bugzilla : 14326 Description: Use old size assignment to avoid deadlock -Details : This reverts the changes in bugs 2369 and bug 14138 that introduced +Details : Reverts the changes in bugs 2369 and bug 14138 that introduced the scheduling while holding a spinlock. We do not need locking for size in ll_update_inode() because size is only updated from the MDS for directories or files without objects, so there is no @@ -379,8 +406,8 @@ Bugzilla : 14533 Frequency : rare, on recovery Description: read procfs can produce deadlock in some situation Details : Holding lprocfs lock which send rpc can produce block for destroy - obd objects and this also block reconnect with -EALREADY. This isn't - fix all lprocfs bugs - but make it rare. + obd objects and this also block reconnect with -EALREADY. This + isn't fix all lprocfs bugs - but make it rare. Severity : enhancement Bugzilla : 15152 @@ -423,11 +450,11 @@ Severity : normal Frequency : occasional Bugzilla : 13537 Description: Correctly check stale fid, not start epoch if ost not support SOM -Details : open with flag O_CREATE need set old fid in op_fid3 because op_fid2 - overwrited with new generated fid, but mds can anwer with one of these - two fids and both is not stale. setattr incorectly start epoch and - assume will be called done_writeting, but without SOM done_writing - never called. +Details : open with flag O_CREATE need set old fid in op_fid3 because + op_fid2 was overwritten with new generated fid, but mds can answer + with one of these two fids and both is not stale. Setattr + incorrectly started an epoch and assume will be called + done_writing, but without SOM done_writing ever being called. Severity : major Frequency : rare, depends on device drivers and load @@ -480,8 +507,8 @@ Severity : minor Frequency : rare Bugzilla : 13196 Description: Don't allow skipping OSTs if index has been specified. -Details : Don't allow skipping OSTs if index has been specified, make locking - in internal create lots better. +Details : Don't allow skipping OSTs if index has been specified, make + locking in internal create lots better. Severity : normal Bugzilla : 12228 @@ -958,8 +985,8 @@ Details : Modify the target file & which_kernel. Severity : enhancement Bugzilla : 10786 Description: omit set fsid for export NFS -Details : fix set/restore device id for avoid EMFILE error and mark lustre fs - as FS_REQUIRES_DEV for avoid problems with generate fsid. +Details : fix set/restore device id for avoid EMFILE error and mark lustre + fs as FS_REQUIRES_DEV for avoid problems with generate fsid. Severity : normal Bugzilla : 13304 @@ -1320,9 +1347,9 @@ Description: add -gid, -group, -uid, -user options to lfs find Severity : normal Bugzilla : 15950 Description: Hung threads in invalidate_inode_pages2_range -Details : The direct IO path doesn't call check_rpcs to submit a new RPC once - one is completed. As a result, some RPCs are stuck in the queue - and are never sent. +Details : The direct IO path doesn't call check_rpcs to submit a new RPC + once one is completed. As a result, some RPCs are stuck in the + queue and are never sent. Severity : normal Bugzilla : 14629 @@ -1351,7 +1378,7 @@ Details : If insertion of an extent fails, then discard the inode Severity : normal Bugzilla : 16199 Description: don't always update ctime in ext3_xattr_set_handle() -Details : Current xattr code updates the inode ctime in ext3_xattr_set_handle. +Details : Current xattr code updates inode ctime in ext3_xattr_set_handle. In some cases the ctime should not be updated, for example for 2.0->1.8 compatibility it is necessary to delete an xattr and it should not update the ctime. @@ -1428,7 +1455,7 @@ Details : Initialize RPC XID from clock at startup (randomly if clock is Severity : enhancement Bugzilla : 14095 Description: Add lustre_start utility to start or stop multiple Lustre servers - from a CSV file. + from a CSV file. Severity : major Bugzilla : 17024 @@ -1438,10 +1465,10 @@ Details : In case of memory pressure, list_del() can be called twice on Severity : normal Bugzilla : 17026 -Description: (ptllnd_peer.c:557:kptllnd_peer_check_sends()) ASSERTION(!in_interrupt()) failed -Details : fix stack overflow in the distributed lock manager by defering export - eviction after a failed ast to the elt thread instead of handling - it in the dlm interpret routine. +Description: kptllnd_peer_check_sends()) ASSERTION(!in_interrupt()) failed +Details : fix stack overflow in the distributed lock manager by defering + export eviction after a failed AST to the elt thread instead of + handling it in the dlm interpret routine. Severity : normal Bugzilla : 16450 @@ -1467,9 +1494,9 @@ Details : Call cmm_device_free() in the failure path of cmm_device_alloc(). Severity : normal Bugzilla : 16450 Description: Add lockdep support to dt_object_operations locking interface. -Details : Augment ->do_{read,write}_lock() prototypes with a `role' parameter - indicating lock ordering. Update mdd code to use new locking - interface. +Details : Augment ->do_{read,write}_lock() prototypes with a `role' + parameter indicating lock ordering. Update mdd code to use new + locking interface. Severity : normal Bugzilla : 16450 @@ -1478,6 +1505,281 @@ Details : Add two new failloc constants to test lockless IO. Only one of them in implemented---another is checked in yet to be landed core CLIO code. +Severity : normal +Bugzilla : 16450 +Description: Add lockdep support for inode mutex. +Details : Introduce and use new LOCK_INODE_MUTEX_PARENT() macro to be used + in the situations where Lustre has to lock more than one inode + mutex at a time. + +Severity : normal +Bugzilla : 16450 +Description: Add optional invariants checking support. +Details : Add new LINVRNT() macro, optional on new --enable-invariants + configure switch. This macro is to be used for consistency and + sanity checks that are too expensive to be left in `production' + mode. + +Severity : minor +Bugzilla : 16450 +Description: Zap lock->l_granted_mode with explicit LCK_MINMODE. +Details : Use LCK_MINMODE rather than 0 to reset lock->l_granted_mode to + its initial state. + +Severity : normal +Bugzilla : 16450 +Description: Add lockdep support for ldlm_lock and ldlm_resource. +Details : Use spin_lock_nested() in (the only) situation where more than + one ldlm_lock is locked simultaneously. Also, fix possible + dead-lock in ldlm_lock_change_resource() by enforcing particular + lock ordering. + +Severity : normal +Bugzilla : 16450 +Description: Use struct ldlm_callback_suite in ldlm_lock_create(). +Details : Instead of specifying each ldlm_lock call-back through separate + parameter, wrap them into struct ldlm_callback_suite. + +Severity : normal +Bugzilla : 16450 +Description: Kill join_lru obd method and its callers. +Details : CLIO uses lock weighting policy to keep locks over mmapped regions + in memory---a requirement implemented through ->o_join_lru() obd + method in HEAD. Remove this method and its users. + +Severity : normal +Bugzilla : 16450 +Description: Add asynchronous ldlm ENQUEUE completion handler. +Details : CLIO posts ENQUEUE requests asynchronously through ptlrpcd---a + case that stock ldlm_completion_ast() cannot handle as it waits + until lock is granted. Introduce new ldlm_completion_ast_async() + for this. Also comment ldlm_completion_ast(). + +Severity : normal +Bugzilla : 16450 +Description: ldlm_error <-> errno conversion. +Details : Add functions to map (rather arbitrary) between LDLM error codes + and standard errno values. CLIO needs this to prevent LDLM specific + constants from escaping ldlm and osc. + +Severity : minor +Bugzilla : 16450 +Description: Kill unused ldlm_handle2lock_ns() function. +Details : Kill unused ldlm_handle2lock_ns() function. + +Severity : normal +Bugzilla : 16450 +Description: Add lu_ref support to ldlm_lock +Details : lu_ref support for ldlm_lock and ldlm_resource. See lu_ref patch. + lu_ref fields ->l_reference and ->lr_reference are added to ldlm_lock + and ldlm_resource. LDLM interface has to be changed, because code that + releases a reference on a lock, has to "know" what reference this is. + In the most frequent case + + lock = ldlm_handle2lock(handle); + ... + LDLM_LOCK_PUT(lock); + + no changes are required. When any other reference (received _not_ from + ldlm_handle2lock()) is released, LDLM_LOCK_RELEASE() has to be called + instead of LDLM_LOCK_PUT(). + + Arguably, changes are pervasive, and interface requires some discipline + for proper use. On the other hand, it was very instrumental in finding + a few leaked lock references. + +Severity : normal +Bugzilla : 16450 +Description: Add ldlm_lock_addref_try(). +Details : Introduce ldlm_lock_addref_try() function (used by CLIO) that + attempts to addref a lock that might be being canceled + concurrently. + +Severity : normal +Bugzilla : 16450 +Description: Add ldlm_weigh_callback(). +Details : Add new ->l_weigh_ast() call-back to ldlm_lock. It is called + by ldlm_cancel_shrink_policy() to estimate lock "value", instead of + hard-coded `number of pages' logic. + +Severity : normal +Bugzilla : 16450 +Description: Add lockdep annotations to llog code. +Details : Use appropriately tagged _nested() locking calls in the places + where llog takes more than one ->lgh_lock lock. + +Severity : minor +Bugzilla : 16450 +Description: Add loi_kms_set(). +Details : Wrap kms updates into a helper function. + +Severity : minor +Bugzilla : 16450 +Description: Constify instances of struct lsm_operations. +Details : Constify instances of struct lsm_operations. + +Severity : normal +Bugzilla : 16450 +Description: lu_conf support. +Details : On a server, a file system object is uniquely identified + by a fid, which is sufficient to locate and load all object + state (inode). On a client, on the other hand, more data are + necessary instantiate an object. Change lu_object_find() and + friends to take additional `lu_conf' argument describing object. + Typically this includes layout information. + +Severity : normal +Bugzilla : 16450 +Description: lu_context fixes. +Details : Introduce new lu_context functions that are needed on the client + side, where some system threads (ptlrpcd) are shared by multiple + modules, and so cannot be stopped during module shutdown. + +Severity : normal +Bugzilla : 16450 +Description: Add start and stop methods to lu_device_type_operations. +Details : Introduce two new methods in lu_device_type_operations, that are + invoked when first instance of a given type is created and last one + is destroyed respectively. This is need by CLIO. + +Severity : normal +Bugzilla : 16450 +Description: Add lu_ref support to struct lu_device. +Details : Add lu_ref support to lu_object and lu_device. lu_ref is used to + track leaked references. + +Severity : normal +Bugzilla : 16450 +Description: Introduce lu_kmem_descr. +Details : lu_kmem_descr and its companion interface allow to create + and destroy a number of kmem caches at once. + +Severity : normal +Bugzilla : 16450 +Description: Fix lu_object finalization race. +Details : Fix a race between lu_object_find() finding an object and its + concurrent finalization. This race is (most likely) not possible + on the server, but might happen on the client. + +Severity : normal +Bugzilla : 16450 +Description: Introduce lu_ref interface. +Details : lu_ref is a debugging module allowing to track references to + a given object. It is quite cpu expensive, and has to be + explicitly enabled with --enable-lu_ref. See usage description + within the patch. + +Severity : minor +Bugzilla : 16450 +Description: Factor lu_site procfs stats into a separate function. +Details : Separate lu_site stats printing code into a separate function + that can be reused on a client. + +Severity : minor +Bugzilla : 16450 +Description: Constify instances of struct {lu,dt,md}_device_operations. +Details : Constify instances of struct {lu,dt,md}_device_operations. + +Severity : normal +Bugzilla : 16450 +Description: Introduce struct md_site and move meta-data specific parts of + struct lu_site here. +Details : Move md-specific fields out of struct lu_site into special struct + md_site, so that lu_site can be used on a client. + +Severity : minor +Bugzilla : 16450 +Description: Kill mdd_lov_destroy(). +Details : Remove unused mdd code. + +Severity : minor +Bugzilla : 16450 +Description: Add st_block checking to multistat.c. +Details : Add st_block checking to multistat.c. + +Severity : normal +Bugzilla : 16450 +Description: Add lu_ref support to struct obd_device. +Details : Add lu_ref tracking to obd_device. + +Severity : minor +Bugzilla : 16450 +Description: Kill obd_set_fail_loc(). +Details : Remove unused code. + +Severity : normal +Bugzilla : 16450 +Description: Add special type for ptlrpc_request interpret functions. +Details : Add lu_env parameter to ->rq_interpreter call-back. NULL is passed + there. Actual usage will be in CLIO. + +Severity : normal +Bugzilla : 16450 +Description: Replace RW_LOCK_UNLOCKED() macro with rwlock_init(). +Details : Replace RW_LOCK_UNLOCKED() with rwlock_init() as the former + doesn't work with lockdep. + +Severity : normal +Bugzilla : 16450 +Description: Add rwv.c test program. +Details : New testing program exercising readv(2) and writev(2) (Qian). + +Severity : normal +Bugzilla : 16450 +Description: Add sendfile.c test program. +Details : New testing program exercising sendfile(2) (Jay). + +Severity : minor +Bugzilla : 16450 +Description: Ratelimit a message that can be very frequent. +Details : Ratelimit a memory allocation failure message that can + be too chatty. + +Severity : minor +Bugzilla : 16450 +Description: Use cdebug_show() in CDEBUG-style macros defined outside of libcfs. +Details : Use cdebug_show() in CDEBUG-style macros defined outside of libcfs. + +Severity : normal +Bugzilla : 16450 +Description: Liblustre build fixes. +Details : Liblustre build fixes. + +Severity : normal +Bugzilla : 16450 +Description: libcfs: add cfs_{need,cond}_resched() interface. +Details : libcfs: add cfs_{need,cond}_resched() definition and + implementations for Linux, NT, and liblustre. + +Severity : enhancement +Bugzilla : 12800 +Description: More exported tunables for mballoc +Details : Add support for tunable preallocation window and new tunables for + large/small requests + +Severity : normal +Bugzilla : 16680 +Description: Detect corruption of block bitmap and checking for preallocations +Details : Checks validity of on-disk block bitmap. Also it does better + checking of number of applied preallocations. When corruption is + found, it turns filesystem readonly to prevent further corruptions. + +Severity : normal +Bugzilla : 17197 +Description: (rw.c:1323:ll_read_ahead_pages()) ASSERTION(page_idx > ria->ria_stoff) failed +Details : Once the unmatched stride IO mode is detected, shrink the stride-ahead + window to 0. If it does hit cache miss, and read-pattern is still + stride-io mode, does not reset the stride window, but also does not + increase the stride window length in this case. + +Severity : normal +Bugzilla : 16438 +Frequency : only for big-endian servers +Description: Check if system is big-endian while mounting fs with extents feature +Details : Mounting a filesystem with extents feature will fail on big-endian + systems since ext3-based ldiskfs is not supported on big-endian + systems. This can be over-riden with "bigendian_extents" mount option. + -------------------------------------------------------------------------------- 2007-08-10 Cluster File Systems, Inc. @@ -1595,8 +1897,8 @@ Severity : normal Frequency : during server recovery Bugzilla : 11203 Description: MDS failing to send precreate requests due to OSCC_FLAG_RECOVERING -Details : request with rq_no_resend flag not awake l_wait_event if they get a - timeout. +Details : request with rq_no_resend flag not awake l_wait_event if they get + a timeout. Severity : minor Frequency : nfs export on patchless client