From 6d0e7d8cc75ae72a729b56f4dca67c1b5a3ed6f6 Mon Sep 17 00:00:00 2001 From: adilger Date: Wed, 25 Jan 2006 18:32:54 +0000 Subject: [PATCH] Branch b_release_1_4_6 Add missing (old) ChangeLog entry. b=6422 --- lustre/ChangeLog | 26 ++++++++++++++++++-------- lustre/obdfilter/filter.c | 2 +- lustre/obdfilter/filter_internal.h | 5 ----- lustre/obdfilter/filter_io_26.c | 6 +++--- 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index a77ce6f..cf04b63 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -640,14 +640,14 @@ Frequency : rare (only unsupported configurations with a node running as an Bugzilla : 6514, 5137 Description: Mounting a Lustre file system on a node running as an OST could lead to deadlocks -Details : OSTs now allocate memory needed to write out data at - startup, instead of when needed, to avoid having to - allocate memory in possibly low memory situations. - Specifically, if the file system is mounted on on OST, - memory pressure could force it to try to write out data, - which it needed to allocate memory to do. Due to the low - memory, it would be unable to do so and the node would - become unresponsive. +Details : OSTs now preallocates memory needed to write out data at + startup, instead of when needed, to avoid having to + allocate memory in possibly low memory situations. + Specifically, if the file system is mounted on on OST, + memory pressure could force it to try to write out data, + which it needed to allocate memory to do. Due to the low + memory, it would be unable to do so and the node would + become unresponsive. Severity : enhancement Bugzilla : 7015 @@ -687,6 +687,16 @@ Details : The config llog parsing code may overwrite the error return of an error. Severity : minor +Bugzilla : 6422 +Frequency : rare +Description: MDS can fail to allocate large reply buffers +Details : After long uptimes the MDS can fail to allocate large reply + buffers (e.g. zconf client mount config records) due to memory + fragmentation or consumption by the buffer cache. Preallocate + some large reply buffers so that these replies can be sent even + under memory pressure. + +Severity : minor Bugzilla : 6266 Frequency : rare (liblustre) Description: fsx running with liblustre complained that using truncate() to diff --git a/lustre/obdfilter/filter.c b/lustre/obdfilter/filter.c index 1689e8e..6e9ad57 100644 --- a/lustre/obdfilter/filter.c +++ b/lustre/obdfilter/filter.c @@ -799,7 +799,7 @@ static int filter_prep(struct obd_device *obd) if (IS_ERR(file)) { rc = PTR_ERR(file); CERROR("OBD filter: cannot open/create %s rc = %d\n", - HEALTH_CHECK, rc); + HEALTH_CHECK, rc); GOTO(err_filp, rc); } filter->fo_health_check_filp = file; diff --git a/lustre/obdfilter/filter_internal.h b/lustre/obdfilter/filter_internal.h index 8cdfd44..790f1d8 100644 --- a/lustre/obdfilter/filter_internal.h +++ b/lustre/obdfilter/filter_internal.h @@ -13,8 +13,6 @@ #include #include -#define FILTER_LAYOUT_VERSION "2" - #ifndef OBD_FILTER_DEVICENAME # define OBD_FILTER_DEVICENAME "obdfilter" #endif @@ -68,9 +66,6 @@ struct filter_client_data { __u8 fcd_padding[LR_CLIENT_SIZE - 56]; }; -#define FILTER_DENTRY_MAGIC 0x9efba101 -#define FILTER_FLAG_DESTROY 0x0001 /* destroy dentry on last file close */ - /* Limit the returned fields marked valid to those that we actually might set */ #define FILTER_VALID_FLAGS (OBD_MD_FLTYPE | OBD_MD_FLMODE | OBD_MD_FLGENER |\ OBD_MD_FLSIZE | OBD_MD_FLBLOCKS | OBD_MD_FLBLKSZ|\ diff --git a/lustre/obdfilter/filter_io_26.c b/lustre/obdfilter/filter_io_26.c index d972fe2..69bf632 100644 --- a/lustre/obdfilter/filter_io_26.c +++ b/lustre/obdfilter/filter_io_26.c @@ -449,7 +449,7 @@ int filter_direct_io(int rw, struct dentry *dchild, struct filter_iobuf *iobuf, LASSERT(iobuf->dr_npages > 0); create = 1; sem = &obd->u.filter.fo_alloc_lock; - + lquota_enforce(quota_interface, obd, iobuf->dr_ignore_quota); } remap: @@ -626,9 +626,9 @@ int filter_commitrw_write(struct obd_export *exp, struct obdo *oa, if (iattr.ia_valid & (ATTR_UID | ATTR_GID)) { CDEBUG(D_INODE, "update UID/GID to %lu/%lu\n", (unsigned long)oa->o_uid, (unsigned long)oa->o_gid); - + cap_raise(current->cap_effective, CAP_SYS_RESOURCE); - + iattr.ia_valid |= ATTR_MODE; iattr.ia_mode = inode->i_mode; if (iattr.ia_valid & ATTR_UID) -- 1.8.3.1