From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepa Dinamani Subject: [PATCH v4 08/26] fs: ext4: Use current_time() for inode timestamps Date: Sat, 13 Aug 2016 15:48:20 -0700 Message-ID: <1471128518-24075-9-git-send-email-deepa.kernel@gmail.com> References: <1471128518-24075-1-git-send-email-deepa.kernel@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: tytso@mit.edu, arnd@arndb.de, y2038@lists.linaro.org, Andreas Dilger , viro@zeniv.linux.org.uk, tglx@linutronix.de, linux-ext4@vger.kernel.org, torvalds@linux-foundation.org To: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Return-path: In-Reply-To: <1471128518-24075-1-git-send-email-deepa.kernel@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: y2038-bounces@lists.linaro.org Sender: "Y2038" List-Id: linux-ext4.vger.kernel.org Q1VSUkVOVF9USU1FX1NFQyBhbmQgQ1VSUkVOVF9USU1FIGFyZSBub3QgeTIwMzggc2FmZS4KY3Vy cmVudF90aW1lKCkgd2lsbCBiZSB0cmFuc2l0aW9uZWQgdG8gYmUgeTIwMzggc2FmZQphbG9uZyB3 aXRoIHZmcy4KCmN1cnJlbnRfdGltZSgpIHJldHVybnMgdGltZXN0YW1wcyBhY2NvcmRpbmcgdG8g dGhlCmdyYW51bGFyaXRpZXMgc2V0IGluIHRoZSBzdXBlcl9ibG9jay4KVGhlIGdyYW51bGFyaXR5 IGNoZWNrIGluIGV4dDRfY3VycmVudF90aW1lKCkgdG8gY2FsbApjdXJyZW50X3RpbWUoKSBvciBD VVJSRU5UX1RJTUVfU0VDIGlzIG5vdCByZXF1aXJlZC4KVXNlIGN1cnJlbnRfdGltZSgpIGRpcmVj dGx5IHRvIG9idGFpbiB0aW1lc3RhbXBzCnVuY29uZGl0aW9uYWxseSwgYW5kIHJlbW92ZSBleHQ0 X2N1cnJlbnRfdGltZSgpLgoKUXVvdGEgZmlsZXMgYXJlIGFzc3VtZWQgdG8gYmUgb24gdGhlIHNh bWUgZmlsZXN5c3RlbS4KSGVuY2UsIHVzZSBjdXJyZW50X3RpbWUoKSBmb3IgdGhlc2UgZmlsZXMg YXMgd2VsbC4KClNpZ25lZC1vZmYtYnk6IERlZXBhIERpbmFtYW5pIDxkZWVwYS5rZXJuZWxAZ21h aWwuY29tPgpSZXZpZXdlZC1ieTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KQ2M6ICJU aGVvZG9yZSBUcydvIiA8dHl0c29AbWl0LmVkdT4KQ2M6IEFuZHJlYXMgRGlsZ2VyIDxhZGlsZ2Vy Lmtlcm5lbEBkaWxnZXIuY2E+CkNjOiBsaW51eC1leHQ0QHZnZXIua2VybmVsLm9yZwotLS0KIGZz L2V4dDQvYWNsLmMgICAgIHwgIDIgKy0KIGZzL2V4dDQvZXh0NC5oICAgIHwgIDYgLS0tLS0tCiBm cy9leHQ0L2V4dGVudHMuYyB8IDEwICsrKysrLS0tLS0KIGZzL2V4dDQvaWFsbG9jLmMgIHwgIDIg Ky0KIGZzL2V4dDQvaW5saW5lLmMgIHwgIDQgKystLQogZnMvZXh0NC9pbm9kZS5jICAgfCAgNiAr KystLS0KIGZzL2V4dDQvaW9jdGwuYyAgIHwgIDggKysrKy0tLS0KIGZzL2V4dDQvbmFtZWkuYyAg IHwgMjQgKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiBmcy9leHQ0L3N1cGVyLmMgICB8ICAyICst CiBmcy9leHQ0L3hhdHRyLmMgICB8ICAyICstCiAxMCBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRp b25zKCspLCAzNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9mcy9leHQ0L2FjbC5jIGIvZnMv ZXh0NC9hY2wuYwppbmRleCBjNjYwMWE0Li43MzNlMmYyNCAxMDA2NDQKLS0tIGEvZnMvZXh0NC9h Y2wuYworKysgYi9mcy9leHQ0L2FjbC5jCkBAIC0xOTcsNyArMTk3LDcgQEAgX19leHQ0X3NldF9h Y2woaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwgaW50IHR5cGUsCiAJCQlp ZiAoZXJyb3IgPCAwKQogCQkJCXJldHVybiBlcnJvcjsKIAkJCWVsc2UgewotCQkJCWlub2RlLT5p X2N0aW1lID0gZXh0NF9jdXJyZW50X3RpbWUoaW5vZGUpOworCQkJCWlub2RlLT5pX2N0aW1lID0g Y3VycmVudF90aW1lKGlub2RlKTsKIAkJCQlleHQ0X21hcmtfaW5vZGVfZGlydHkoaGFuZGxlLCBp bm9kZSk7CiAJCQkJaWYgKGVycm9yID09IDApCiAJCQkJCWFjbCA9IE5VTEw7CmRpZmYgLS1naXQg YS9mcy9leHQ0L2V4dDQuaCBiL2ZzL2V4dDQvZXh0NC5oCmluZGV4IGVhMzE5MzEuLjcxMjgxZDEg MTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvZXh0NC5oCisrKyBiL2ZzL2V4dDQvZXh0NC5oCkBAIC0xNTIz LDEyICsxNTIzLDYgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZXh0NF9pbm9kZV9pbmZvICpFWFQ0 X0koc3RydWN0IGlub2RlICppbm9kZSkKIAlyZXR1cm4gY29udGFpbmVyX29mKGlub2RlLCBzdHJ1 Y3QgZXh0NF9pbm9kZV9pbmZvLCB2ZnNfaW5vZGUpOwogfQogCi1zdGF0aWMgaW5saW5lIHN0cnVj dCB0aW1lc3BlYyBleHQ0X2N1cnJlbnRfdGltZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQotewotCXJl dHVybiAoaW5vZGUtPmlfc2ItPnNfdGltZV9ncmFuIDwgTlNFQ19QRVJfU0VDKSA/Ci0JCWN1cnJl bnRfZnNfdGltZShpbm9kZS0+aV9zYikgOiBDVVJSRU5UX1RJTUVfU0VDOwotfQotCiBzdGF0aWMg aW5saW5lIGludCBleHQ0X3ZhbGlkX2ludW0oc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdW5zaWdu ZWQgbG9uZyBpbm8pCiB7CiAJcmV0dXJuIGlubyA9PSBFWFQ0X1JPT1RfSU5PIHx8CmRpZmYgLS1n aXQgYS9mcy9leHQ0L2V4dGVudHMuYyBiL2ZzL2V4dDQvZXh0ZW50cy5jCmluZGV4IGQ3Y2NiN2Yu LmRlODJjYjkgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvZXh0ZW50cy5jCisrKyBiL2ZzL2V4dDQvZXh0 ZW50cy5jCkBAIC00NzMwLDcgKzQ3MzAsNyBAQCByZXRyeToKIAkJbWFwLm1fbGJsayArPSByZXQ7 CiAJCW1hcC5tX2xlbiA9IGxlbiA9IGxlbiAtIHJldDsKIAkJZXBvcyA9IChsb2ZmX3QpbWFwLm1f bGJsayA8PCBpbm9kZS0+aV9ibGtiaXRzOwotCQlpbm9kZS0+aV9jdGltZSA9IGV4dDRfY3VycmVu dF90aW1lKGlub2RlKTsKKwkJaW5vZGUtPmlfY3RpbWUgPSBjdXJyZW50X3RpbWUoaW5vZGUpOwog CQlpZiAobmV3X3NpemUpIHsKIAkJCWlmIChlcG9zID4gbmV3X3NpemUpCiAJCQkJZXBvcyA9IG5l d19zaXplOwpAQCAtNDg1OCw3ICs0ODU4LDcgQEAgc3RhdGljIGxvbmcgZXh0NF96ZXJvX3Jhbmdl KHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LAogCQl9CiAJCS8qIE5vdyByZWxlYXNl IHRoZSBwYWdlcyBhbmQgemVybyBibG9jayBhbGlnbmVkIHBhcnQgb2YgcGFnZXMgKi8KIAkJdHJ1 bmNhdGVfcGFnZWNhY2hlX3JhbmdlKGlub2RlLCBzdGFydCwgZW5kIC0gMSk7Ci0JCWlub2RlLT5p X210aW1lID0gaW5vZGUtPmlfY3RpbWUgPSBleHQ0X2N1cnJlbnRfdGltZShpbm9kZSk7CisJCWlu b2RlLT5pX210aW1lID0gaW5vZGUtPmlfY3RpbWUgPSBjdXJyZW50X3RpbWUoaW5vZGUpOwogCiAJ CXJldCA9IGV4dDRfYWxsb2NfZmlsZV9ibG9ja3MoZmlsZSwgbGJsaywgbWF4X2Jsb2NrcywgbmV3 X3NpemUsCiAJCQkJCSAgICAgZmxhZ3MsIG1vZGUpOwpAQCAtNDg4Myw3ICs0ODgzLDcgQEAgc3Rh dGljIGxvbmcgZXh0NF96ZXJvX3JhbmdlKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0 LAogCQlnb3RvIG91dF9kaW87CiAJfQogCi0JaW5vZGUtPmlfbXRpbWUgPSBpbm9kZS0+aV9jdGlt ZSA9IGV4dDRfY3VycmVudF90aW1lKGlub2RlKTsKKwlpbm9kZS0+aV9tdGltZSA9IGlub2RlLT5p X2N0aW1lID0gY3VycmVudF90aW1lKGlub2RlKTsKIAlpZiAobmV3X3NpemUpIHsKIAkJZXh0NF91 cGRhdGVfaW5vZGVfc2l6ZShpbm9kZSwgbmV3X3NpemUpOwogCX0gZWxzZSB7CkBAIC01NTgyLDcg KzU1ODIsNyBAQCBpbnQgZXh0NF9jb2xsYXBzZV9yYW5nZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBs b2ZmX3Qgb2Zmc2V0LCBsb2ZmX3QgbGVuKQogCXVwX3dyaXRlKCZFWFQ0X0koaW5vZGUpLT5pX2Rh dGFfc2VtKTsKIAlpZiAoSVNfU1lOQyhpbm9kZSkpCiAJCWV4dDRfaGFuZGxlX3N5bmMoaGFuZGxl KTsKLQlpbm9kZS0+aV9tdGltZSA9IGlub2RlLT5pX2N0aW1lID0gZXh0NF9jdXJyZW50X3RpbWUo aW5vZGUpOworCWlub2RlLT5pX210aW1lID0gaW5vZGUtPmlfY3RpbWUgPSBjdXJyZW50X3RpbWUo aW5vZGUpOwogCWV4dDRfbWFya19pbm9kZV9kaXJ0eShoYW5kbGUsIGlub2RlKTsKIAogb3V0X3N0 b3A6CkBAIC01NjkyLDcgKzU2OTIsNyBAQCBpbnQgZXh0NF9pbnNlcnRfcmFuZ2Uoc3RydWN0IGlu b2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbikKIAkvKiBFeHBhbmQgZmlsZSB0 byBhdm9pZCBkYXRhIGxvc3MgaWYgdGhlcmUgaXMgZXJyb3Igd2hpbGUgc2hpZnRpbmcgKi8KIAlp bm9kZS0+aV9zaXplICs9IGxlbjsKIAlFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplICs9IGxlbjsK LQlpbm9kZS0+aV9tdGltZSA9IGlub2RlLT5pX2N0aW1lID0gZXh0NF9jdXJyZW50X3RpbWUoaW5v ZGUpOworCWlub2RlLT5pX210aW1lID0gaW5vZGUtPmlfY3RpbWUgPSBjdXJyZW50X3RpbWUoaW5v ZGUpOwogCXJldCA9IGV4dDRfbWFya19pbm9kZV9kaXJ0eShoYW5kbGUsIGlub2RlKTsKIAlpZiAo cmV0KQogCQlnb3RvIG91dF9zdG9wOwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9pYWxsb2MuYyBiL2Zz L2V4dDQvaWFsbG9jLmMKaW5kZXggOWU2NmNkMS4uOWIwNTY0OCAxMDA2NDQKLS0tIGEvZnMvZXh0 NC9pYWxsb2MuYworKysgYi9mcy9leHQ0L2lhbGxvYy5jCkBAIC0xMDM5LDcgKzEwMzksNyBAQCBn b3Q6CiAJLyogVGhpcyBpcyB0aGUgb3B0aW1hbCBJTyBzaXplIChmb3Igc3RhdCksIG5vdCB0aGUg ZnMgYmxvY2sgc2l6ZSAqLwogCWlub2RlLT5pX2Jsb2NrcyA9IDA7CiAJaW5vZGUtPmlfbXRpbWUg PSBpbm9kZS0+aV9hdGltZSA9IGlub2RlLT5pX2N0aW1lID0gZWktPmlfY3J0aW1lID0KLQkJCQkJ CSAgICAgICBleHQ0X2N1cnJlbnRfdGltZShpbm9kZSk7CisJCQkJCQkgICAgICAgY3VycmVudF90 aW1lKGlub2RlKTsKIAogCW1lbXNldChlaS0+aV9kYXRhLCAwLCBzaXplb2YoZWktPmlfZGF0YSkp OwogCWVpLT5pX2Rpcl9zdGFydF9sb29rdXAgPSAwOwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbmxp bmUuYyBiL2ZzL2V4dDQvaW5saW5lLmMKaW5kZXggZjc0ZDVlZS4uY2ZhODdiZCAxMDA2NDQKLS0t IGEvZnMvZXh0NC9pbmxpbmUuYworKysgYi9mcy9leHQ0L2lubGluZS5jCkBAIC0xMDI4LDcgKzEw MjgsNyBAQCBzdGF0aWMgaW50IGV4dDRfYWRkX2RpcmVudF90b19pbmxpbmUoaGFuZGxlX3QgKmhh bmRsZSwKIAkgKiBoYXBwZW4gaXMgdGhhdCB0aGUgdGltZXMgYXJlIHNsaWdodGx5IG91dCBvZiBk YXRlCiAJICogYW5kL29yIGRpZmZlcmVudCBmcm9tIHRoZSBkaXJlY3RvcnkgY2hhbmdlIHRpbWUu CiAJICovCi0JZGlyLT5pX210aW1lID0gZGlyLT5pX2N0aW1lID0gZXh0NF9jdXJyZW50X3RpbWUo ZGlyKTsKKwlkaXItPmlfbXRpbWUgPSBkaXItPmlfY3RpbWUgPSBjdXJyZW50X3RpbWUoZGlyKTsK IAlleHQ0X3VwZGF0ZV9keF9mbGFnKGRpcik7CiAJZGlyLT5pX3ZlcnNpb24rKzsKIAlleHQ0X21h cmtfaW5vZGVfZGlydHkoaGFuZGxlLCBkaXIpOwpAQCAtMTk3MSw3ICsxOTcxLDcgQEAgb3V0Ogog CWlmIChpbm9kZS0+aV9ubGluaykKIAkJZXh0NF9vcnBoYW5fZGVsKGhhbmRsZSwgaW5vZGUpOwog Ci0JaW5vZGUtPmlfbXRpbWUgPSBpbm9kZS0+aV9jdGltZSA9IGV4dDRfY3VycmVudF90aW1lKGlu b2RlKTsKKwlpbm9kZS0+aV9tdGltZSA9IGlub2RlLT5pX2N0aW1lID0gY3VycmVudF90aW1lKGlu b2RlKTsKIAlleHQ0X21hcmtfaW5vZGVfZGlydHkoaGFuZGxlLCBpbm9kZSk7CiAJaWYgKElTX1NZ TkMoaW5vZGUpKQogCQlleHQ0X2hhbmRsZV9zeW5jKGhhbmRsZSk7CmRpZmYgLS1naXQgYS9mcy9l eHQ0L2lub2RlLmMgYi9mcy9leHQ0L2lub2RlLmMKaW5kZXggMzEzMTc0Ny4uMDVlZjVhMSAxMDA2 NDQKLS0tIGEvZnMvZXh0NC9pbm9kZS5jCisrKyBiL2ZzL2V4dDQvaW5vZGUuYwpAQCAtNDAyMCw3 ICs0MDIwLDcgQEAgaW50IGV4dDRfcHVuY2hfaG9sZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2Zm X3Qgb2Zmc2V0LCBsb2ZmX3QgbGVuZ3RoKQogCWlmIChJU19TWU5DKGlub2RlKSkKIAkJZXh0NF9o YW5kbGVfc3luYyhoYW5kbGUpOwogCi0JaW5vZGUtPmlfbXRpbWUgPSBpbm9kZS0+aV9jdGltZSA9 IGV4dDRfY3VycmVudF90aW1lKGlub2RlKTsKKwlpbm9kZS0+aV9tdGltZSA9IGlub2RlLT5pX2N0 aW1lID0gY3VycmVudF90aW1lKGlub2RlKTsKIAlleHQ0X21hcmtfaW5vZGVfZGlydHkoaGFuZGxl LCBpbm9kZSk7CiBvdXRfc3RvcDoKIAlleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOwpAQCAtNDE3 NCw3ICs0MTc0LDcgQEAgb3V0X3N0b3A6CiAJaWYgKGlub2RlLT5pX25saW5rKQogCQlleHQ0X29y cGhhbl9kZWwoaGFuZGxlLCBpbm9kZSk7CiAKLQlpbm9kZS0+aV9tdGltZSA9IGlub2RlLT5pX2N0 aW1lID0gZXh0NF9jdXJyZW50X3RpbWUoaW5vZGUpOworCWlub2RlLT5pX210aW1lID0gaW5vZGUt PmlfY3RpbWUgPSBjdXJyZW50X3RpbWUoaW5vZGUpOwogCWV4dDRfbWFya19pbm9kZV9kaXJ0eSho YW5kbGUsIGlub2RlKTsKIAlleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOwogCkBAIC01MTQ5LDcg KzUxNDksNyBAQCBpbnQgZXh0NF9zZXRhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0 IGlhdHRyICphdHRyKQogCQkJICogdXBkYXRlIGMvbXRpbWUgaW4gc2hyaW5rIGNhc2UgYmVsb3cK IAkJCSAqLwogCQkJaWYgKCFzaHJpbmspIHsKLQkJCQlpbm9kZS0+aV9tdGltZSA9IGV4dDRfY3Vy cmVudF90aW1lKGlub2RlKTsKKwkJCQlpbm9kZS0+aV9tdGltZSA9IGN1cnJlbnRfdGltZShpbm9k ZSk7CiAJCQkJaW5vZGUtPmlfY3RpbWUgPSBpbm9kZS0+aV9tdGltZTsKIAkJCX0KIAkJCWRvd25f d3JpdGUoJkVYVDRfSShpbm9kZSktPmlfZGF0YV9zZW0pOwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9p b2N0bC5jIGIvZnMvZXh0NC9pb2N0bC5jCmluZGV4IDEwNjg2ZmQuLjkzOTE5ODUgMTAwNjQ0Ci0t LSBhL2ZzL2V4dDQvaW9jdGwuYworKysgYi9mcy9leHQ0L2lvY3RsLmMKQEAgLTE1NSw3ICsxNTUs NyBAQCBzdGF0aWMgbG9uZyBzd2FwX2lub2RlX2Jvb3RfbG9hZGVyKHN0cnVjdCBzdXBlcl9ibG9j ayAqc2IsCiAKIAlzd2FwX2lub2RlX2RhdGEoaW5vZGUsIGlub2RlX2JsKTsKIAotCWlub2RlLT5p X2N0aW1lID0gaW5vZGVfYmwtPmlfY3RpbWUgPSBleHQ0X2N1cnJlbnRfdGltZShpbm9kZSk7CisJ aW5vZGUtPmlfY3RpbWUgPSBpbm9kZV9ibC0+aV9jdGltZSA9IGN1cnJlbnRfdGltZShpbm9kZSk7 CiAKIAlzcGluX2xvY2soJnNiaS0+c19uZXh0X2dlbl9sb2NrKTsKIAlpbm9kZS0+aV9nZW5lcmF0 aW9uID0gc2JpLT5zX25leHRfZ2VuZXJhdGlvbisrOwpAQCAtMjc0LDcgKzI3NCw3IEBAIHN0YXRp YyBpbnQgZXh0NF9pb2N0bF9zZXRmbGFncyhzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCX0KIAogCWV4 dDRfc2V0X2lub2RlX2ZsYWdzKGlub2RlKTsKLQlpbm9kZS0+aV9jdGltZSA9IGV4dDRfY3VycmVu dF90aW1lKGlub2RlKTsKKwlpbm9kZS0+aV9jdGltZSA9IGN1cnJlbnRfdGltZShpbm9kZSk7CiAK IAllcnIgPSBleHQ0X21hcmtfaWxvY19kaXJ0eShoYW5kbGUsIGlub2RlLCAmaWxvYyk7CiBmbGFn c19lcnI6CkBAIC0zNzEsNyArMzcxLDcgQEAgc3RhdGljIGludCBleHQ0X2lvY3RsX3NldHByb2pl Y3Qoc3RydWN0IGZpbGUgKmZpbHAsIF9fdTMyIHByb2ppZCkKIAl9CiAKIAlFWFQ0X0koaW5vZGUp LT5pX3Byb2ppZCA9IGtwcm9qaWQ7Ci0JaW5vZGUtPmlfY3RpbWUgPSBleHQ0X2N1cnJlbnRfdGlt ZShpbm9kZSk7CisJaW5vZGUtPmlfY3RpbWUgPSBjdXJyZW50X3RpbWUoaW5vZGUpOwogb3V0X2Rp cnR5OgogCXJjID0gZXh0NF9tYXJrX2lsb2NfZGlydHkoaGFuZGxlLCBpbm9kZSwgJmlsb2MpOwog CWlmICghZXJyKQpAQCAtNTAzLDcgKzUwMyw3IEBAIGxvbmcgZXh0NF9pb2N0bChzdHJ1Y3QgZmls ZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCiAJCX0KIAkJZXJy ID0gZXh0NF9yZXNlcnZlX2lub2RlX3dyaXRlKGhhbmRsZSwgaW5vZGUsICZpbG9jKTsKIAkJaWYg KGVyciA9PSAwKSB7Ci0JCQlpbm9kZS0+aV9jdGltZSA9IGV4dDRfY3VycmVudF90aW1lKGlub2Rl KTsKKwkJCWlub2RlLT5pX2N0aW1lID0gY3VycmVudF90aW1lKGlub2RlKTsKIAkJCWlub2RlLT5p X2dlbmVyYXRpb24gPSBnZW5lcmF0aW9uOwogCQkJZXJyID0gZXh0NF9tYXJrX2lsb2NfZGlydHko aGFuZGxlLCBpbm9kZSwgJmlsb2MpOwogCQl9CmRpZmYgLS1naXQgYS9mcy9leHQ0L25hbWVpLmMg Yi9mcy9leHQ0L25hbWVpLmMKaW5kZXggMzRjMDE0Mi4uZjc0OGNlYSAxMDA2NDQKLS0tIGEvZnMv ZXh0NC9uYW1laS5jCisrKyBiL2ZzL2V4dDQvbmFtZWkuYwpAQCAtMTkzOSw3ICsxOTM5LDcgQEAg c3RhdGljIGludCBhZGRfZGlyZW50X3RvX2J1ZihoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgZXh0 NF9maWxlbmFtZSAqZm5hbWUsCiAJICogaGFwcGVuIGlzIHRoYXQgdGhlIHRpbWVzIGFyZSBzbGln aHRseSBvdXQgb2YgZGF0ZQogCSAqIGFuZC9vciBkaWZmZXJlbnQgZnJvbSB0aGUgZGlyZWN0b3J5 IGNoYW5nZSB0aW1lLgogCSAqLwotCWRpci0+aV9tdGltZSA9IGRpci0+aV9jdGltZSA9IGV4dDRf Y3VycmVudF90aW1lKGRpcik7CisJZGlyLT5pX210aW1lID0gZGlyLT5pX2N0aW1lID0gY3VycmVu dF90aW1lKGRpcik7CiAJZXh0NF91cGRhdGVfZHhfZmxhZyhkaXIpOwogCWRpci0+aV92ZXJzaW9u Kys7CiAJZXh0NF9tYXJrX2lub2RlX2RpcnR5KGhhbmRsZSwgZGlyKTsKQEAgLTI5ODcsNyArMjk4 Nyw3IEBAIHN0YXRpYyBpbnQgZXh0NF9ybWRpcihzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRl bnRyeSAqZGVudHJ5KQogCSAqIHJlY292ZXJ5LiAqLwogCWlub2RlLT5pX3NpemUgPSAwOwogCWV4 dDRfb3JwaGFuX2FkZChoYW5kbGUsIGlub2RlKTsKLQlpbm9kZS0+aV9jdGltZSA9IGRpci0+aV9j dGltZSA9IGRpci0+aV9tdGltZSA9IGV4dDRfY3VycmVudF90aW1lKGlub2RlKTsKKwlpbm9kZS0+ aV9jdGltZSA9IGRpci0+aV9jdGltZSA9IGRpci0+aV9tdGltZSA9IGN1cnJlbnRfdGltZShpbm9k ZSk7CiAJZXh0NF9tYXJrX2lub2RlX2RpcnR5KGhhbmRsZSwgaW5vZGUpOwogCWV4dDRfZGVjX2Nv dW50KGhhbmRsZSwgZGlyKTsKIAlleHQ0X3VwZGF0ZV9keF9mbGFnKGRpcik7CkBAIC0zMDUwLDEz ICszMDUwLDEzIEBAIHN0YXRpYyBpbnQgZXh0NF91bmxpbmsoc3RydWN0IGlub2RlICpkaXIsIHN0 cnVjdCBkZW50cnkgKmRlbnRyeSkKIAlyZXR2YWwgPSBleHQ0X2RlbGV0ZV9lbnRyeShoYW5kbGUs IGRpciwgZGUsIGJoKTsKIAlpZiAocmV0dmFsKQogCQlnb3RvIGVuZF91bmxpbms7Ci0JZGlyLT5p X2N0aW1lID0gZGlyLT5pX210aW1lID0gZXh0NF9jdXJyZW50X3RpbWUoZGlyKTsKKwlkaXItPmlf Y3RpbWUgPSBkaXItPmlfbXRpbWUgPSBjdXJyZW50X3RpbWUoZGlyKTsKIAlleHQ0X3VwZGF0ZV9k eF9mbGFnKGRpcik7CiAJZXh0NF9tYXJrX2lub2RlX2RpcnR5KGhhbmRsZSwgZGlyKTsKIAlkcm9w X25saW5rKGlub2RlKTsKIAlpZiAoIWlub2RlLT5pX25saW5rKQogCQlleHQ0X29ycGhhbl9hZGQo aGFuZGxlLCBpbm9kZSk7Ci0JaW5vZGUtPmlfY3RpbWUgPSBleHQ0X2N1cnJlbnRfdGltZShpbm9k ZSk7CisJaW5vZGUtPmlfY3RpbWUgPSBjdXJyZW50X3RpbWUoaW5vZGUpOwogCWV4dDRfbWFya19p bm9kZV9kaXJ0eShoYW5kbGUsIGlub2RlKTsKIAogZW5kX3VubGluazoKQEAgLTMyNTQsNyArMzI1 NCw3IEBAIHJldHJ5OgogCWlmIChJU19ESVJTWU5DKGRpcikpCiAJCWV4dDRfaGFuZGxlX3N5bmMo aGFuZGxlKTsKIAotCWlub2RlLT5pX2N0aW1lID0gZXh0NF9jdXJyZW50X3RpbWUoaW5vZGUpOwor CWlub2RlLT5pX2N0aW1lID0gY3VycmVudF90aW1lKGlub2RlKTsKIAlleHQ0X2luY19jb3VudCho YW5kbGUsIGlub2RlKTsKIAlpaG9sZChpbm9kZSk7CiAKQEAgLTMzODEsNyArMzM4MSw3IEBAIHN0 YXRpYyBpbnQgZXh0NF9zZXRlbnQoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGV4dDRfcmVuYW1l bnQgKmVudCwKIAkJZW50LT5kZS0+ZmlsZV90eXBlID0gZmlsZV90eXBlOwogCWVudC0+ZGlyLT5p X3ZlcnNpb24rKzsKIAllbnQtPmRpci0+aV9jdGltZSA9IGVudC0+ZGlyLT5pX210aW1lID0KLQkJ ZXh0NF9jdXJyZW50X3RpbWUoZW50LT5kaXIpOworCQljdXJyZW50X3RpbWUoZW50LT5kaXIpOwog CWV4dDRfbWFya19pbm9kZV9kaXJ0eShoYW5kbGUsIGVudC0+ZGlyKTsKIAlCVUZGRVJfVFJBQ0Uo ZW50LT5iaCwgImNhbGwgZXh0NF9oYW5kbGVfZGlydHlfbWV0YWRhdGEiKTsKIAlpZiAoIWVudC0+ aW5saW5lZCkgewpAQCAtMzY1MSw3ICszNjUxLDcgQEAgc3RhdGljIGludCBleHQ0X3JlbmFtZShz dHJ1Y3QgaW5vZGUgKm9sZF9kaXIsIHN0cnVjdCBkZW50cnkgKm9sZF9kZW50cnksCiAJICogTGlr ZSBtb3N0IG90aGVyIFVuaXggc3lzdGVtcywgc2V0IHRoZSBjdGltZSBmb3IgaW5vZGVzIG9uIGEK IAkgKiByZW5hbWUuCiAJICovCi0Jb2xkLmlub2RlLT5pX2N0aW1lID0gZXh0NF9jdXJyZW50X3Rp bWUob2xkLmlub2RlKTsKKwlvbGQuaW5vZGUtPmlfY3RpbWUgPSBjdXJyZW50X3RpbWUob2xkLmlu b2RlKTsKIAlleHQ0X21hcmtfaW5vZGVfZGlydHkoaGFuZGxlLCBvbGQuaW5vZGUpOwogCiAJaWYg KCF3aGl0ZW91dCkgewpAQCAtMzY2Myw5ICszNjYzLDkgQEAgc3RhdGljIGludCBleHQ0X3JlbmFt ZShzdHJ1Y3QgaW5vZGUgKm9sZF9kaXIsIHN0cnVjdCBkZW50cnkgKm9sZF9kZW50cnksCiAKIAlp ZiAobmV3Lmlub2RlKSB7CiAJCWV4dDRfZGVjX2NvdW50KGhhbmRsZSwgbmV3Lmlub2RlKTsKLQkJ bmV3Lmlub2RlLT5pX2N0aW1lID0gZXh0NF9jdXJyZW50X3RpbWUobmV3Lmlub2RlKTsKKwkJbmV3 Lmlub2RlLT5pX2N0aW1lID0gY3VycmVudF90aW1lKG5ldy5pbm9kZSk7CiAJfQotCW9sZC5kaXIt PmlfY3RpbWUgPSBvbGQuZGlyLT5pX210aW1lID0gZXh0NF9jdXJyZW50X3RpbWUob2xkLmRpcik7 CisJb2xkLmRpci0+aV9jdGltZSA9IG9sZC5kaXItPmlfbXRpbWUgPSBjdXJyZW50X3RpbWUob2xk LmRpcik7CiAJZXh0NF91cGRhdGVfZHhfZmxhZyhvbGQuZGlyKTsKIAlpZiAob2xkLmRpcl9iaCkg ewogCQlyZXR2YWwgPSBleHQ0X3JlbmFtZV9kaXJfZmluaXNoKGhhbmRsZSwgJm9sZCwgbmV3LmRp ci0+aV9pbm8pOwpAQCAtMzcyMyw2ICszNzIzLDcgQEAgc3RhdGljIGludCBleHQ0X2Nyb3NzX3Jl bmFtZShzdHJ1Y3QgaW5vZGUgKm9sZF9kaXIsIHN0cnVjdCBkZW50cnkgKm9sZF9kZW50cnksCiAJ fTsKIAl1OCBuZXdfZmlsZV90eXBlOwogCWludCByZXR2YWw7CisJc3RydWN0IHRpbWVzcGVjIGN0 aW1lOwogCiAJaWYgKChleHQ0X2VuY3J5cHRlZF9pbm9kZShvbGRfZGlyKSB8fAogCSAgICAgZXh0 NF9lbmNyeXB0ZWRfaW5vZGUobmV3X2RpcikpICYmCkBAIC0zODIzLDggKzM4MjQsOSBAQCBzdGF0 aWMgaW50IGV4dDRfY3Jvc3NfcmVuYW1lKHN0cnVjdCBpbm9kZSAqb2xkX2Rpciwgc3RydWN0IGRl bnRyeSAqb2xkX2RlbnRyeSwKIAkgKiBMaWtlIG1vc3Qgb3RoZXIgVW5peCBzeXN0ZW1zLCBzZXQg dGhlIGN0aW1lIGZvciBpbm9kZXMgb24gYQogCSAqIHJlbmFtZS4KIAkgKi8KLQlvbGQuaW5vZGUt PmlfY3RpbWUgPSBleHQ0X2N1cnJlbnRfdGltZShvbGQuaW5vZGUpOwotCW5ldy5pbm9kZS0+aV9j dGltZSA9IGV4dDRfY3VycmVudF90aW1lKG5ldy5pbm9kZSk7CisJY3RpbWUgPSBjdXJyZW50X3Rp bWUob2xkLmlub2RlKTsKKwlvbGQuaW5vZGUtPmlfY3RpbWUgPSBjdGltZTsKKwluZXcuaW5vZGUt PmlfY3RpbWUgPSBjdGltZTsKIAlleHQ0X21hcmtfaW5vZGVfZGlydHkoaGFuZGxlLCBvbGQuaW5v ZGUpOwogCWV4dDRfbWFya19pbm9kZV9kaXJ0eShoYW5kbGUsIG5ldy5pbm9kZSk7CiAKZGlmZiAt LWdpdCBhL2ZzL2V4dDQvc3VwZXIuYyBiL2ZzL2V4dDQvc3VwZXIuYwppbmRleCAxYzU5M2FhLi5j YmExOTI3IDEwMDY0NAotLS0gYS9mcy9leHQ0L3N1cGVyLmMKKysrIGIvZnMvZXh0NC9zdXBlci5j CkBAIC01MjcwLDcgKzUyNzAsNyBAQCBzdGF0aWMgaW50IGV4dDRfcXVvdGFfb2ZmKHN0cnVjdCBz dXBlcl9ibG9jayAqc2IsIGludCB0eXBlKQogCWhhbmRsZSA9IGV4dDRfam91cm5hbF9zdGFydChp bm9kZSwgRVhUNF9IVF9RVU9UQSwgMSk7CiAJaWYgKElTX0VSUihoYW5kbGUpKQogCQlnb3RvIG91 dDsKLQlpbm9kZS0+aV9tdGltZSA9IGlub2RlLT5pX2N0aW1lID0gQ1VSUkVOVF9USU1FOworCWlu b2RlLT5pX210aW1lID0gaW5vZGUtPmlfY3RpbWUgPSBjdXJyZW50X3RpbWUoaW5vZGUpOwogCWV4 dDRfbWFya19pbm9kZV9kaXJ0eShoYW5kbGUsIGlub2RlKTsKIAlleHQ0X2pvdXJuYWxfc3RvcCho YW5kbGUpOwogCmRpZmYgLS1naXQgYS9mcy9leHQ0L3hhdHRyLmMgYi9mcy9leHQ0L3hhdHRyLmMK aW5kZXggMzllOWNmYi4uNTE2YzhlZSAxMDA2NDQKLS0tIGEvZnMvZXh0NC94YXR0ci5jCisrKyBi L2ZzL2V4dDQveGF0dHIuYwpAQCAtMTI1NCw3ICsxMjU0LDcgQEAgZXh0NF94YXR0cl9zZXRfaGFu ZGxlKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBuYW1lX2luZGV4 LAogCX0KIAlpZiAoIWVycm9yKSB7CiAJCWV4dDRfeGF0dHJfdXBkYXRlX3N1cGVyX2Jsb2NrKGhh bmRsZSwgaW5vZGUtPmlfc2IpOwotCQlpbm9kZS0+aV9jdGltZSA9IGV4dDRfY3VycmVudF90aW1l KGlub2RlKTsKKwkJaW5vZGUtPmlfY3RpbWUgPSBjdXJyZW50X3RpbWUoaW5vZGUpOwogCQlpZiAo IXZhbHVlKQogCQkJZXh0NF9jbGVhcl9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9OT19F WFBBTkQpOwogCQllcnJvciA9IGV4dDRfbWFya19pbG9jX2RpcnR5KGhhbmRsZSwgaW5vZGUsICZp cy5pbG9jKTsKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpZMjAzOCBtYWlsaW5nIGxpc3QKWTIwMzhAbGlzdHMubGluYXJvLm9yZwpodHRw czovL2xpc3RzLmxpbmFyby5vcmcvbWFpbG1hbi9saXN0aW5mby95MjAzOAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f194.google.com ([209.85.192.194]:34939 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964788AbcHNLBn (ORCPT ); Sun, 14 Aug 2016 07:01:43 -0400 From: Deepa Dinamani To: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Cc: arnd@arndb.de, tglx@linutronix.de, torvalds@linux-foundation.org, tytso@mit.edu, viro@zeniv.linux.org.uk, y2038@lists.linaro.org, Andreas Dilger , linux-ext4@vger.kernel.org Subject: [PATCH v4 08/26] fs: ext4: Use current_time() for inode timestamps Date: Sat, 13 Aug 2016 15:48:20 -0700 Message-Id: <1471128518-24075-9-git-send-email-deepa.kernel@gmail.com> In-Reply-To: <1471128518-24075-1-git-send-email-deepa.kernel@gmail.com> References: <1471128518-24075-1-git-send-email-deepa.kernel@gmail.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: CURRENT_TIME_SEC and CURRENT_TIME are not y2038 safe. current_time() will be transitioned to be y2038 safe along with vfs. current_time() returns timestamps according to the granularities set in the super_block. The granularity check in ext4_current_time() to call current_time() or CURRENT_TIME_SEC is not required. Use current_time() directly to obtain timestamps unconditionally, and remove ext4_current_time(). Quota files are assumed to be on the same filesystem. Hence, use current_time() for these files as well. Signed-off-by: Deepa Dinamani Reviewed-by: Arnd Bergmann Cc: "Theodore Ts'o" Cc: Andreas Dilger Cc: linux-ext4@vger.kernel.org --- fs/ext4/acl.c | 2 +- fs/ext4/ext4.h | 6 ------ fs/ext4/extents.c | 10 +++++----- fs/ext4/ialloc.c | 2 +- fs/ext4/inline.c | 4 ++-- fs/ext4/inode.c | 6 +++--- fs/ext4/ioctl.c | 8 ++++---- fs/ext4/namei.c | 24 +++++++++++++----------- fs/ext4/super.c | 2 +- fs/ext4/xattr.c | 2 +- 10 files changed, 31 insertions(+), 35 deletions(-) diff --git a/fs/ext4/acl.c b/fs/ext4/acl.c index c6601a4..733e2f24 100644 --- a/fs/ext4/acl.c +++ b/fs/ext4/acl.c @@ -197,7 +197,7 @@ __ext4_set_acl(handle_t *handle, struct inode *inode, int type, if (error < 0) return error; else { - inode->i_ctime = ext4_current_time(inode); + inode->i_ctime = current_time(inode); ext4_mark_inode_dirty(handle, inode); if (error == 0) acl = NULL; diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index ea31931..71281d1 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h @@ -1523,12 +1523,6 @@ static inline struct ext4_inode_info *EXT4_I(struct inode *inode) return container_of(inode, struct ext4_inode_info, vfs_inode); } -static inline struct timespec ext4_current_time(struct inode *inode) -{ - return (inode->i_sb->s_time_gran < NSEC_PER_SEC) ? - current_fs_time(inode->i_sb) : CURRENT_TIME_SEC; -} - static inline int ext4_valid_inum(struct super_block *sb, unsigned long ino) { return ino == EXT4_ROOT_INO || diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index d7ccb7f..de82cb9 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -4730,7 +4730,7 @@ retry: map.m_lblk += ret; map.m_len = len = len - ret; epos = (loff_t)map.m_lblk << inode->i_blkbits; - inode->i_ctime = ext4_current_time(inode); + inode->i_ctime = current_time(inode); if (new_size) { if (epos > new_size) epos = new_size; @@ -4858,7 +4858,7 @@ static long ext4_zero_range(struct file *file, loff_t offset, } /* Now release the pages and zero block aligned part of pages */ truncate_pagecache_range(inode, start, end - 1); - inode->i_mtime = inode->i_ctime = ext4_current_time(inode); + inode->i_mtime = inode->i_ctime = current_time(inode); ret = ext4_alloc_file_blocks(file, lblk, max_blocks, new_size, flags, mode); @@ -4883,7 +4883,7 @@ static long ext4_zero_range(struct file *file, loff_t offset, goto out_dio; } - inode->i_mtime = inode->i_ctime = ext4_current_time(inode); + inode->i_mtime = inode->i_ctime = current_time(inode); if (new_size) { ext4_update_inode_size(inode, new_size); } else { @@ -5582,7 +5582,7 @@ int ext4_collapse_range(struct inode *inode, loff_t offset, loff_t len) up_write(&EXT4_I(inode)->i_data_sem); if (IS_SYNC(inode)) ext4_handle_sync(handle); - inode->i_mtime = inode->i_ctime = ext4_current_time(inode); + inode->i_mtime = inode->i_ctime = current_time(inode); ext4_mark_inode_dirty(handle, inode); out_stop: @@ -5692,7 +5692,7 @@ int ext4_insert_range(struct inode *inode, loff_t offset, loff_t len) /* Expand file to avoid data loss if there is error while shifting */ inode->i_size += len; EXT4_I(inode)->i_disksize += len; - inode->i_mtime = inode->i_ctime = ext4_current_time(inode); + inode->i_mtime = inode->i_ctime = current_time(inode); ret = ext4_mark_inode_dirty(handle, inode); if (ret) goto out_stop; diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c index 9e66cd1..9b05648 100644 --- a/fs/ext4/ialloc.c +++ b/fs/ext4/ialloc.c @@ -1039,7 +1039,7 @@ got: /* This is the optimal IO size (for stat), not the fs block size */ inode->i_blocks = 0; inode->i_mtime = inode->i_atime = inode->i_ctime = ei->i_crtime = - ext4_current_time(inode); + current_time(inode); memset(ei->i_data, 0, sizeof(ei->i_data)); ei->i_dir_start_lookup = 0; diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index f74d5ee..cfa87bd 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c @@ -1028,7 +1028,7 @@ static int ext4_add_dirent_to_inline(handle_t *handle, * happen is that the times are slightly out of date * and/or different from the directory change time. */ - dir->i_mtime = dir->i_ctime = ext4_current_time(dir); + dir->i_mtime = dir->i_ctime = current_time(dir); ext4_update_dx_flag(dir); dir->i_version++; ext4_mark_inode_dirty(handle, dir); @@ -1971,7 +1971,7 @@ out: if (inode->i_nlink) ext4_orphan_del(handle, inode); - inode->i_mtime = inode->i_ctime = ext4_current_time(inode); + inode->i_mtime = inode->i_ctime = current_time(inode); ext4_mark_inode_dirty(handle, inode); if (IS_SYNC(inode)) ext4_handle_sync(handle); diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 3131747..05ef5a1 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -4020,7 +4020,7 @@ int ext4_punch_hole(struct inode *inode, loff_t offset, loff_t length) if (IS_SYNC(inode)) ext4_handle_sync(handle); - inode->i_mtime = inode->i_ctime = ext4_current_time(inode); + inode->i_mtime = inode->i_ctime = current_time(inode); ext4_mark_inode_dirty(handle, inode); out_stop: ext4_journal_stop(handle); @@ -4174,7 +4174,7 @@ out_stop: if (inode->i_nlink) ext4_orphan_del(handle, inode); - inode->i_mtime = inode->i_ctime = ext4_current_time(inode); + inode->i_mtime = inode->i_ctime = current_time(inode); ext4_mark_inode_dirty(handle, inode); ext4_journal_stop(handle); @@ -5149,7 +5149,7 @@ int ext4_setattr(struct dentry *dentry, struct iattr *attr) * update c/mtime in shrink case below */ if (!shrink) { - inode->i_mtime = ext4_current_time(inode); + inode->i_mtime = current_time(inode); inode->i_ctime = inode->i_mtime; } down_write(&EXT4_I(inode)->i_data_sem); diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c index 10686fd..9391985 100644 --- a/fs/ext4/ioctl.c +++ b/fs/ext4/ioctl.c @@ -155,7 +155,7 @@ static long swap_inode_boot_loader(struct super_block *sb, swap_inode_data(inode, inode_bl); - inode->i_ctime = inode_bl->i_ctime = ext4_current_time(inode); + inode->i_ctime = inode_bl->i_ctime = current_time(inode); spin_lock(&sbi->s_next_gen_lock); inode->i_generation = sbi->s_next_generation++; @@ -274,7 +274,7 @@ static int ext4_ioctl_setflags(struct inode *inode, } ext4_set_inode_flags(inode); - inode->i_ctime = ext4_current_time(inode); + inode->i_ctime = current_time(inode); err = ext4_mark_iloc_dirty(handle, inode, &iloc); flags_err: @@ -371,7 +371,7 @@ static int ext4_ioctl_setproject(struct file *filp, __u32 projid) } EXT4_I(inode)->i_projid = kprojid; - inode->i_ctime = ext4_current_time(inode); + inode->i_ctime = current_time(inode); out_dirty: rc = ext4_mark_iloc_dirty(handle, inode, &iloc); if (!err) @@ -503,7 +503,7 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) } err = ext4_reserve_inode_write(handle, inode, &iloc); if (err == 0) { - inode->i_ctime = ext4_current_time(inode); + inode->i_ctime = current_time(inode); inode->i_generation = generation; err = ext4_mark_iloc_dirty(handle, inode, &iloc); } diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index 34c0142..f748cea 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c @@ -1939,7 +1939,7 @@ static int add_dirent_to_buf(handle_t *handle, struct ext4_filename *fname, * happen is that the times are slightly out of date * and/or different from the directory change time. */ - dir->i_mtime = dir->i_ctime = ext4_current_time(dir); + dir->i_mtime = dir->i_ctime = current_time(dir); ext4_update_dx_flag(dir); dir->i_version++; ext4_mark_inode_dirty(handle, dir); @@ -2987,7 +2987,7 @@ static int ext4_rmdir(struct inode *dir, struct dentry *dentry) * recovery. */ inode->i_size = 0; ext4_orphan_add(handle, inode); - inode->i_ctime = dir->i_ctime = dir->i_mtime = ext4_current_time(inode); + inode->i_ctime = dir->i_ctime = dir->i_mtime = current_time(inode); ext4_mark_inode_dirty(handle, inode); ext4_dec_count(handle, dir); ext4_update_dx_flag(dir); @@ -3050,13 +3050,13 @@ static int ext4_unlink(struct inode *dir, struct dentry *dentry) retval = ext4_delete_entry(handle, dir, de, bh); if (retval) goto end_unlink; - dir->i_ctime = dir->i_mtime = ext4_current_time(dir); + dir->i_ctime = dir->i_mtime = current_time(dir); ext4_update_dx_flag(dir); ext4_mark_inode_dirty(handle, dir); drop_nlink(inode); if (!inode->i_nlink) ext4_orphan_add(handle, inode); - inode->i_ctime = ext4_current_time(inode); + inode->i_ctime = current_time(inode); ext4_mark_inode_dirty(handle, inode); end_unlink: @@ -3254,7 +3254,7 @@ retry: if (IS_DIRSYNC(dir)) ext4_handle_sync(handle); - inode->i_ctime = ext4_current_time(inode); + inode->i_ctime = current_time(inode); ext4_inc_count(handle, inode); ihold(inode); @@ -3381,7 +3381,7 @@ static int ext4_setent(handle_t *handle, struct ext4_renament *ent, ent->de->file_type = file_type; ent->dir->i_version++; ent->dir->i_ctime = ent->dir->i_mtime = - ext4_current_time(ent->dir); + current_time(ent->dir); ext4_mark_inode_dirty(handle, ent->dir); BUFFER_TRACE(ent->bh, "call ext4_handle_dirty_metadata"); if (!ent->inlined) { @@ -3651,7 +3651,7 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry, * Like most other Unix systems, set the ctime for inodes on a * rename. */ - old.inode->i_ctime = ext4_current_time(old.inode); + old.inode->i_ctime = current_time(old.inode); ext4_mark_inode_dirty(handle, old.inode); if (!whiteout) { @@ -3663,9 +3663,9 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry, if (new.inode) { ext4_dec_count(handle, new.inode); - new.inode->i_ctime = ext4_current_time(new.inode); + new.inode->i_ctime = current_time(new.inode); } - old.dir->i_ctime = old.dir->i_mtime = ext4_current_time(old.dir); + old.dir->i_ctime = old.dir->i_mtime = current_time(old.dir); ext4_update_dx_flag(old.dir); if (old.dir_bh) { retval = ext4_rename_dir_finish(handle, &old, new.dir->i_ino); @@ -3723,6 +3723,7 @@ static int ext4_cross_rename(struct inode *old_dir, struct dentry *old_dentry, }; u8 new_file_type; int retval; + struct timespec ctime; if ((ext4_encrypted_inode(old_dir) || ext4_encrypted_inode(new_dir)) && @@ -3823,8 +3824,9 @@ static int ext4_cross_rename(struct inode *old_dir, struct dentry *old_dentry, * Like most other Unix systems, set the ctime for inodes on a * rename. */ - old.inode->i_ctime = ext4_current_time(old.inode); - new.inode->i_ctime = ext4_current_time(new.inode); + ctime = current_time(old.inode); + old.inode->i_ctime = ctime; + new.inode->i_ctime = ctime; ext4_mark_inode_dirty(handle, old.inode); ext4_mark_inode_dirty(handle, new.inode); diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 1c593aa..cba1927 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -5270,7 +5270,7 @@ static int ext4_quota_off(struct super_block *sb, int type) handle = ext4_journal_start(inode, EXT4_HT_QUOTA, 1); if (IS_ERR(handle)) goto out; - inode->i_mtime = inode->i_ctime = CURRENT_TIME; + inode->i_mtime = inode->i_ctime = current_time(inode); ext4_mark_inode_dirty(handle, inode); ext4_journal_stop(handle); diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c index 39e9cfb..516c8ee 100644 --- a/fs/ext4/xattr.c +++ b/fs/ext4/xattr.c @@ -1254,7 +1254,7 @@ ext4_xattr_set_handle(handle_t *handle, struct inode *inode, int name_index, } if (!error) { ext4_xattr_update_super_block(handle, inode->i_sb); - inode->i_ctime = ext4_current_time(inode); + inode->i_ctime = current_time(inode); if (!value) ext4_clear_inode_state(inode, EXT4_STATE_NO_EXPAND); error = ext4_mark_iloc_dirty(handle, inode, &is.iloc); -- 1.9.1