* File join has been disabled in this release, refer to Bugzilla 16929.
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
indicating lock ordering. Update mdd code to use new locking
interface.
+Severity : normal
+Bugzilla : 16450
+Description: Introduce failloc constants for lockless IO tests.
+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.
+
--------------------------------------------------------------------------------
2007-08-10 Cluster File Systems, Inc. <info@clusterfs.com>