X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fmdt%2Fmdt_open.c;h=b89abc9727b40b1f722433e12a054debb99c3d68;hb=d2f7cb7934a0b38fa9503e8257f2b70ed656c11d;hp=c7cfc1ad5f085be6a50e320bac98ed7c5bb94854;hpb=9e2620d75cce1e1b4855704ddd9a994ce8e8d650;p=fs%2Flustre-release.git diff --git a/lustre/mdt/mdt_open.c b/lustre/mdt/mdt_open.c index c7cfc1a..b89abc9 100644 --- a/lustre/mdt/mdt_open.c +++ b/lustre/mdt/mdt_open.c @@ -2389,15 +2389,17 @@ int mdt_mfd_close(struct mdt_thread_info *info, struct mdt_file_data *mfd) else if (open_flags & MDS_FMODE_EXEC) mdt_write_allow(o); - /* Update atime on close only. */ + /* Update atime|mtime|ctime on close. */ if ((open_flags & MDS_FMODE_EXEC || open_flags & MDS_FMODE_READ || open_flags & MDS_FMODE_WRITE) && (ma->ma_valid & MA_INODE) && - (ma->ma_attr.la_valid & LA_ATIME)) { - /* Set the atime only. */ - ma->ma_valid = MA_INODE; - ma->ma_attr.la_valid = LA_ATIME; - rc = mo_attr_set(info->mti_env, next, ma); - } + (ma->ma_attr.la_valid & LA_ATIME || + ma->ma_attr.la_valid & LA_MTIME || + ma->ma_attr.la_valid & LA_CTIME)) { + ma->ma_valid = MA_INODE; + ma->ma_attr_flags |= MDS_CLOSE_UPDATE_TIMES; + ma->ma_attr.la_valid &= (LA_ATIME | LA_MTIME | LA_CTIME); + rc = mo_attr_set(info->mti_env, next, ma); + } /* If file data is modified, add the dirty flag. */ if (ma->ma_attr_flags & MDS_DATA_MODIFIED)