From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepa Dinamani Subject: [RESEND PATCH] fs: ext4: Use current_time() for inode timestamps Date: Fri, 11 Nov 2016 10:32:57 -0800 Message-ID: <1478889177-4107-1-git-send-email-deepa.kernel@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: y2038@lists.linaro.org, arnd@arndb.de To: linux-kernel@vger.kernel.org, tytso@mit.edu, adilger.kernel@dilger.ca, linux-ext4@vger.kernel.org Return-path: 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 aWwuY29tPgpSZXZpZXdlZC1ieTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KLS0tCiBm cy9leHQ0L2FjbC5jICAgICB8ICAyICstCiBmcy9leHQ0L2V4dDQuaCAgICB8ICA2IC0tLS0tLQog ZnMvZXh0NC9leHRlbnRzLmMgfCAxMCArKysrKy0tLS0tCiBmcy9leHQ0L2lhbGxvYy5jICB8ICAy ICstCiBmcy9leHQ0L2lubGluZS5jICB8ICA0ICsrLS0KIGZzL2V4dDQvaW5vZGUuYyAgIHwgIDYg KysrLS0tCiBmcy9leHQ0L2lvY3RsLmMgICB8ICA4ICsrKystLS0tCiBmcy9leHQ0L25hbWVpLmMg ICB8IDI0ICsrKysrKysrKysrKystLS0tLS0tLS0tLQogZnMvZXh0NC9zdXBlci5jICAgfCAgMiAr LQogZnMvZXh0NC94YXR0ci5jICAgfCAgMiArLQogMTAgZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0 aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9hY2wuYyBiL2Zz L2V4dDQvYWNsLmMKaW5kZXggZGZhNTE5OS4uZmQzODk5MyAxMDA2NDQKLS0tIGEvZnMvZXh0NC9h Y2wuYworKysgYi9mcy9leHQ0L2FjbC5jCkBAIC0xOTYsNyArMTk2LDcgQEAgX19leHQ0X3NldF9h Y2woaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwgaW50IHR5cGUsCiAJCQll cnJvciA9IHBvc2l4X2FjbF91cGRhdGVfbW9kZShpbm9kZSwgJmlub2RlLT5pX21vZGUsICZhY2wp OwogCQkJaWYgKGVycm9yKQogCQkJCXJldHVybiBlcnJvcjsKLQkJCWlub2RlLT5pX2N0aW1lID0g ZXh0NF9jdXJyZW50X3RpbWUoaW5vZGUpOworCQkJaW5vZGUtPmlfY3RpbWUgPSBjdXJyZW50X3Rp bWUoaW5vZGUpOwogCQkJZXh0NF9tYXJrX2lub2RlX2RpcnR5KGhhbmRsZSwgaW5vZGUpOwogCQl9 CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9leHQ0LmggYi9mcy9leHQ0L2V4dDQuaApp bmRleCAyODJhNTFiLi42Nzg5Mzc5IDEwMDY0NAotLS0gYS9mcy9leHQ0L2V4dDQuaAorKysgYi9m cy9leHQ0L2V4dDQuaApAQCAtMTUzMiwxMiArMTUzMiw2IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0 IGV4dDRfaW5vZGVfaW5mbyAqRVhUNF9JKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiAJcmV0dXJuIGNv bnRhaW5lcl9vZihpbm9kZSwgc3RydWN0IGV4dDRfaW5vZGVfaW5mbywgdmZzX2lub2RlKTsKIH0K IAotc3RhdGljIGlubGluZSBzdHJ1Y3QgdGltZXNwZWMgZXh0NF9jdXJyZW50X3RpbWUoc3RydWN0 IGlub2RlICppbm9kZSkKLXsKLQlyZXR1cm4gKGlub2RlLT5pX3NiLT5zX3RpbWVfZ3JhbiA8IE5T RUNfUEVSX1NFQykgPwotCQljdXJyZW50X2ZzX3RpbWUoaW5vZGUtPmlfc2IpIDogQ1VSUkVOVF9U SU1FX1NFQzsKLX0KLQogc3RhdGljIGlubGluZSBpbnQgZXh0NF92YWxpZF9pbnVtKHN0cnVjdCBz dXBlcl9ibG9jayAqc2IsIHVuc2lnbmVkIGxvbmcgaW5vKQogewogCXJldHVybiBpbm8gPT0gRVhU NF9ST09UX0lOTyB8fApkaWZmIC0tZ2l0IGEvZnMvZXh0NC9leHRlbnRzLmMgYi9mcy9leHQ0L2V4 dGVudHMuYwppbmRleCBjOTMwYTAxLi43ODZiZTg3IDEwMDY0NAotLS0gYS9mcy9leHQ0L2V4dGVu dHMuYworKysgYi9mcy9leHQ0L2V4dGVudHMuYwpAQCAtNDcyNSw3ICs0NzI1LDcgQEAgc3RhdGlj IGludCBleHQ0X2FsbG9jX2ZpbGVfYmxvY2tzKHN0cnVjdCBmaWxlICpmaWxlLCBleHQ0X2xibGtf dCBvZmZzZXQsCiAJCW1hcC5tX2xibGsgKz0gcmV0OwogCQltYXAubV9sZW4gPSBsZW4gPSBsZW4g LSByZXQ7CiAJCWVwb3MgPSAobG9mZl90KW1hcC5tX2xibGsgPDwgaW5vZGUtPmlfYmxrYml0czsK LQkJaW5vZGUtPmlfY3RpbWUgPSBleHQ0X2N1cnJlbnRfdGltZShpbm9kZSk7CisJCWlub2RlLT5p X2N0aW1lID0gY3VycmVudF90aW1lKGlub2RlKTsKIAkJaWYgKG5ld19zaXplKSB7CiAJCQlpZiAo ZXBvcyA+IG5ld19zaXplKQogCQkJCWVwb3MgPSBuZXdfc2l6ZTsKQEAgLTQ4NTMsNyArNDg1Myw3 IEBAIHN0YXRpYyBsb25nIGV4dDRfemVyb19yYW5nZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90 IG9mZnNldCwKIAkJfQogCQkvKiBOb3cgcmVsZWFzZSB0aGUgcGFnZXMgYW5kIHplcm8gYmxvY2sg YWxpZ25lZCBwYXJ0IG9mIHBhZ2VzICovCiAJCXRydW5jYXRlX3BhZ2VjYWNoZV9yYW5nZShpbm9k ZSwgc3RhcnQsIGVuZCAtIDEpOwotCQlpbm9kZS0+aV9tdGltZSA9IGlub2RlLT5pX2N0aW1lID0g ZXh0NF9jdXJyZW50X3RpbWUoaW5vZGUpOworCQlpbm9kZS0+aV9tdGltZSA9IGlub2RlLT5pX2N0 aW1lID0gY3VycmVudF90aW1lKGlub2RlKTsKIAogCQlyZXQgPSBleHQ0X2FsbG9jX2ZpbGVfYmxv Y2tzKGZpbGUsIGxibGssIG1heF9ibG9ja3MsIG5ld19zaXplLAogCQkJCQkgICAgIGZsYWdzLCBt b2RlKTsKQEAgLTQ4NzgsNyArNDg3OCw3IEBAIHN0YXRpYyBsb25nIGV4dDRfemVyb19yYW5nZShz dHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwKIAkJZ290byBvdXRfZGlvOwogCX0KIAot CWlub2RlLT5pX210aW1lID0gaW5vZGUtPmlfY3RpbWUgPSBleHQ0X2N1cnJlbnRfdGltZShpbm9k ZSk7CisJaW5vZGUtPmlfbXRpbWUgPSBpbm9kZS0+aV9jdGltZSA9IGN1cnJlbnRfdGltZShpbm9k ZSk7CiAJaWYgKG5ld19zaXplKSB7CiAJCWV4dDRfdXBkYXRlX2lub2RlX3NpemUoaW5vZGUsIG5l d19zaXplKTsKIAl9IGVsc2UgewpAQCAtNTU2OCw3ICs1NTY4LDcgQEAgaW50IGV4dDRfY29sbGFw c2VfcmFuZ2Uoc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbikK IAl1cF93cml0ZSgmRVhUNF9JKGlub2RlKS0+aV9kYXRhX3NlbSk7CiAJaWYgKElTX1NZTkMoaW5v ZGUpKQogCQlleHQ0X2hhbmRsZV9zeW5jKGhhbmRsZSk7Ci0JaW5vZGUtPmlfbXRpbWUgPSBpbm9k ZS0+aV9jdGltZSA9IGV4dDRfY3VycmVudF90aW1lKGlub2RlKTsKKwlpbm9kZS0+aV9tdGltZSA9 IGlub2RlLT5pX2N0aW1lID0gY3VycmVudF90aW1lKGlub2RlKTsKIAlleHQ0X21hcmtfaW5vZGVf ZGlydHkoaGFuZGxlLCBpbm9kZSk7CiAKIG91dF9zdG9wOgpAQCAtNTY3OCw3ICs1Njc4LDcgQEAg aW50IGV4dDRfaW5zZXJ0X3JhbmdlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBvZmZzZXQs IGxvZmZfdCBsZW4pCiAJLyogRXhwYW5kIGZpbGUgdG8gYXZvaWQgZGF0YSBsb3NzIGlmIHRoZXJl IGlzIGVycm9yIHdoaWxlIHNoaWZ0aW5nICovCiAJaW5vZGUtPmlfc2l6ZSArPSBsZW47CiAJRVhU NF9JKGlub2RlKS0+aV9kaXNrc2l6ZSArPSBsZW47Ci0JaW5vZGUtPmlfbXRpbWUgPSBpbm9kZS0+ aV9jdGltZSA9IGV4dDRfY3VycmVudF90aW1lKGlub2RlKTsKKwlpbm9kZS0+aV9tdGltZSA9IGlu b2RlLT5pX2N0aW1lID0gY3VycmVudF90aW1lKGlub2RlKTsKIAlyZXQgPSBleHQ0X21hcmtfaW5v ZGVfZGlydHkoaGFuZGxlLCBpbm9kZSk7CiAJaWYgKHJldCkKIAkJZ290byBvdXRfc3RvcDsKZGlm ZiAtLWdpdCBhL2ZzL2V4dDQvaWFsbG9jLmMgYi9mcy9leHQ0L2lhbGxvYy5jCmluZGV4IDE3MDQy MWUuLjA4OGFmZTAgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvaWFsbG9jLmMKKysrIGIvZnMvZXh0NC9p YWxsb2MuYwpAQCAtMTAzOSw3ICsxMDM5LDcgQEAgc3RydWN0IGlub2RlICpfX2V4dDRfbmV3X2lu b2RlKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqZGlyLAogCS8qIFRoaXMgaXMgdGhl IG9wdGltYWwgSU8gc2l6ZSAoZm9yIHN0YXQpLCBub3QgdGhlIGZzIGJsb2NrIHNpemUgKi8KIAlp bm9kZS0+aV9ibG9ja3MgPSAwOwogCWlub2RlLT5pX210aW1lID0gaW5vZGUtPmlfYXRpbWUgPSBp bm9kZS0+aV9jdGltZSA9IGVpLT5pX2NydGltZSA9Ci0JCQkJCQkgICAgICAgZXh0NF9jdXJyZW50 X3RpbWUoaW5vZGUpOworCQkJCQkJICAgICAgIGN1cnJlbnRfdGltZShpbm9kZSk7CiAKIAltZW1z ZXQoZWktPmlfZGF0YSwgMCwgc2l6ZW9mKGVpLT5pX2RhdGEpKTsKIAllaS0+aV9kaXJfc3RhcnRf bG9va3VwID0gMDsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvaW5saW5lLmMgYi9mcy9leHQ0L2lubGlu ZS5jCmluZGV4IGY3NGQ1ZWUuLmNmYTg3YmQgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvaW5saW5lLmMK KysrIGIvZnMvZXh0NC9pbmxpbmUuYwpAQCAtMTAyOCw3ICsxMDI4LDcgQEAgc3RhdGljIGludCBl eHQ0X2FkZF9kaXJlbnRfdG9faW5saW5lKGhhbmRsZV90ICpoYW5kbGUsCiAJICogaGFwcGVuIGlz IHRoYXQgdGhlIHRpbWVzIGFyZSBzbGlnaHRseSBvdXQgb2YgZGF0ZQogCSAqIGFuZC9vciBkaWZm ZXJlbnQgZnJvbSB0aGUgZGlyZWN0b3J5IGNoYW5nZSB0aW1lLgogCSAqLwotCWRpci0+aV9tdGlt ZSA9IGRpci0+aV9jdGltZSA9IGV4dDRfY3VycmVudF90aW1lKGRpcik7CisJZGlyLT5pX210aW1l ID0gZGlyLT5pX2N0aW1lID0gY3VycmVudF90aW1lKGRpcik7CiAJZXh0NF91cGRhdGVfZHhfZmxh ZyhkaXIpOwogCWRpci0+aV92ZXJzaW9uKys7CiAJZXh0NF9tYXJrX2lub2RlX2RpcnR5KGhhbmRs ZSwgZGlyKTsKQEAgLTE5NzEsNyArMTk3MSw3IEBAIHZvaWQgZXh0NF9pbmxpbmVfZGF0YV90cnVu Y2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgKmhhc19pbmxpbmUpCiAJaWYgKGlub2RlLT5p X25saW5rKQogCQlleHQ0X29ycGhhbl9kZWwoaGFuZGxlLCBpbm9kZSk7CiAKLQlpbm9kZS0+aV9t dGltZSA9IGlub2RlLT5pX2N0aW1lID0gZXh0NF9jdXJyZW50X3RpbWUoaW5vZGUpOworCWlub2Rl LT5pX210aW1lID0gaW5vZGUtPmlfY3RpbWUgPSBjdXJyZW50X3RpbWUoaW5vZGUpOwogCWV4dDRf bWFya19pbm9kZV9kaXJ0eShoYW5kbGUsIGlub2RlKTsKIAlpZiAoSVNfU1lOQyhpbm9kZSkpCiAJ CWV4dDRfaGFuZGxlX3N5bmMoaGFuZGxlKTsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvaW5vZGUuYyBi L2ZzL2V4dDQvaW5vZGUuYwppbmRleCAzZDU4YjJiLi45MjZlZDFmIDEwMDY0NAotLS0gYS9mcy9l eHQ0L2lub2RlLmMKKysrIGIvZnMvZXh0NC9pbm9kZS5jCkBAIC00MDI5LDcgKzQwMjksNyBAQCBp bnQgZXh0NF9wdW5jaF9ob2xlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBvZmZzZXQsIGxv ZmZfdCBsZW5ndGgpCiAJaWYgKElTX1NZTkMoaW5vZGUpKQogCQlleHQ0X2hhbmRsZV9zeW5jKGhh bmRsZSk7CiAKLQlpbm9kZS0+aV9tdGltZSA9IGlub2RlLT5pX2N0aW1lID0gZXh0NF9jdXJyZW50 X3RpbWUoaW5vZGUpOworCWlub2RlLT5pX210aW1lID0gaW5vZGUtPmlfY3RpbWUgPSBjdXJyZW50 X3RpbWUoaW5vZGUpOwogCWV4dDRfbWFya19pbm9kZV9kaXJ0eShoYW5kbGUsIGlub2RlKTsKIG91 dF9zdG9wOgogCWV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7CkBAIC00MTgzLDcgKzQxODMsNyBA QCB2b2lkIGV4dDRfdHJ1bmNhdGUoc3RydWN0IGlub2RlICppbm9kZSkKIAlpZiAoaW5vZGUtPmlf bmxpbmspCiAJCWV4dDRfb3JwaGFuX2RlbChoYW5kbGUsIGlub2RlKTsKIAotCWlub2RlLT5pX210 aW1lID0gaW5vZGUtPmlfY3RpbWUgPSBleHQ0X2N1cnJlbnRfdGltZShpbm9kZSk7CisJaW5vZGUt PmlfbXRpbWUgPSBpbm9kZS0+aV9jdGltZSA9IGN1cnJlbnRfdGltZShpbm9kZSk7CiAJZXh0NF9t YXJrX2lub2RlX2RpcnR5KGhhbmRsZSwgaW5vZGUpOwogCWV4dDRfam91cm5hbF9zdG9wKGhhbmRs ZSk7CiAKQEAgLTUxNTcsNyArNTE1Nyw3IEBAIGludCBleHQ0X3NldGF0dHIoc3RydWN0IGRlbnRy eSAqZGVudHJ5LCBzdHJ1Y3QgaWF0dHIgKmF0dHIpCiAJCQkgKiB1cGRhdGUgYy9tdGltZSBpbiBz aHJpbmsgY2FzZSBiZWxvdwogCQkJICovCiAJCQlpZiAoIXNocmluaykgewotCQkJCWlub2RlLT5p X210aW1lID0gZXh0NF9jdXJyZW50X3RpbWUoaW5vZGUpOworCQkJCWlub2RlLT5pX210aW1lID0g Y3VycmVudF90aW1lKGlub2RlKTsKIAkJCQlpbm9kZS0+aV9jdGltZSA9IGlub2RlLT5pX210aW1l OwogCQkJfQogCQkJZG93bl93cml0ZSgmRVhUNF9JKGlub2RlKS0+aV9kYXRhX3NlbSk7CmRpZmYg LS1naXQgYS9mcy9leHQ0L2lvY3RsLmMgYi9mcy9leHQ0L2lvY3RsLmMKaW5kZXggYmY1YWU4ZS4u M2JiYTllOSAxMDA2NDQKLS0tIGEvZnMvZXh0NC9pb2N0bC5jCisrKyBiL2ZzL2V4dDQvaW9jdGwu YwpAQCAtMTUzLDcgKzE1Myw3IEBAIHN0YXRpYyBsb25nIHN3YXBfaW5vZGVfYm9vdF9sb2FkZXIo c3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKIAogCXN3YXBfaW5vZGVfZGF0YShpbm9kZSwgaW5vZGVf YmwpOwogCi0JaW5vZGUtPmlfY3RpbWUgPSBpbm9kZV9ibC0+aV9jdGltZSA9IGV4dDRfY3VycmVu dF90aW1lKGlub2RlKTsKKwlpbm9kZS0+aV9jdGltZSA9IGlub2RlX2JsLT5pX2N0aW1lID0gY3Vy cmVudF90aW1lKGlub2RlKTsKIAogCXNwaW5fbG9jaygmc2JpLT5zX25leHRfZ2VuX2xvY2spOwog CWlub2RlLT5pX2dlbmVyYXRpb24gPSBzYmktPnNfbmV4dF9nZW5lcmF0aW9uKys7CkBAIC0yNzIs NyArMjcyLDcgQEAgc3RhdGljIGludCBleHQ0X2lvY3RsX3NldGZsYWdzKHN0cnVjdCBpbm9kZSAq aW5vZGUsCiAJfQogCiAJZXh0NF9zZXRfaW5vZGVfZmxhZ3MoaW5vZGUpOwotCWlub2RlLT5pX2N0 aW1lID0gZXh0NF9jdXJyZW50X3RpbWUoaW5vZGUpOworCWlub2RlLT5pX2N0aW1lID0gY3VycmVu dF90aW1lKGlub2RlKTsKIAogCWVyciA9IGV4dDRfbWFya19pbG9jX2RpcnR5KGhhbmRsZSwgaW5v ZGUsICZpbG9jKTsKIGZsYWdzX2VycjoKQEAgLTM2OCw3ICszNjgsNyBAQCBzdGF0aWMgaW50IGV4 dDRfaW9jdGxfc2V0cHJvamVjdChzdHJ1Y3QgZmlsZSAqZmlscCwgX191MzIgcHJvamlkKQogCX0K IAogCUVYVDRfSShpbm9kZSktPmlfcHJvamlkID0ga3Byb2ppZDsKLQlpbm9kZS0+aV9jdGltZSA9 IGV4dDRfY3VycmVudF90aW1lKGlub2RlKTsKKwlpbm9kZS0+aV9jdGltZSA9IGN1cnJlbnRfdGlt ZShpbm9kZSk7CiBvdXRfZGlydHk6CiAJcmMgPSBleHQ0X21hcmtfaWxvY19kaXJ0eShoYW5kbGUs IGlub2RlLCAmaWxvYyk7CiAJaWYgKCFlcnIpCkBAIC01MDAsNyArNTAwLDcgQEAgbG9uZyBleHQ0 X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25n IGFyZykKIAkJfQogCQllcnIgPSBleHQ0X3Jlc2VydmVfaW5vZGVfd3JpdGUoaGFuZGxlLCBpbm9k ZSwgJmlsb2MpOwogCQlpZiAoZXJyID09IDApIHsKLQkJCWlub2RlLT5pX2N0aW1lID0gZXh0NF9j dXJyZW50X3RpbWUoaW5vZGUpOworCQkJaW5vZGUtPmlfY3RpbWUgPSBjdXJyZW50X3RpbWUoaW5v ZGUpOwogCQkJaW5vZGUtPmlfZ2VuZXJhdGlvbiA9IGdlbmVyYXRpb247CiAJCQllcnIgPSBleHQ0 X21hcmtfaWxvY19kaXJ0eShoYW5kbGUsIGlub2RlLCAmaWxvYyk7CiAJCX0KZGlmZiAtLWdpdCBh L2ZzL2V4dDQvbmFtZWkuYyBiL2ZzL2V4dDQvbmFtZWkuYwppbmRleCAxMDRmOGJmLi5lYWRiYTkx IDEwMDY0NAotLS0gYS9mcy9leHQ0L25hbWVpLmMKKysrIGIvZnMvZXh0NC9uYW1laS5jCkBAIC0x OTQxLDcgKzE5NDEsNyBAQCBzdGF0aWMgaW50IGFkZF9kaXJlbnRfdG9fYnVmKGhhbmRsZV90ICpo YW5kbGUsIHN0cnVjdCBleHQ0X2ZpbGVuYW1lICpmbmFtZSwKIAkgKiBoYXBwZW4gaXMgdGhhdCB0 aGUgdGltZXMgYXJlIHNsaWdodGx5IG91dCBvZiBkYXRlCiAJICogYW5kL29yIGRpZmZlcmVudCBm cm9tIHRoZSBkaXJlY3RvcnkgY2hhbmdlIHRpbWUuCiAJICovCi0JZGlyLT5pX210aW1lID0gZGly LT5pX2N0aW1lID0gZXh0NF9jdXJyZW50X3RpbWUoZGlyKTsKKwlkaXItPmlfbXRpbWUgPSBkaXIt PmlfY3RpbWUgPSBjdXJyZW50X3RpbWUoZGlyKTsKIAlleHQ0X3VwZGF0ZV9keF9mbGFnKGRpcik7 CiAJZGlyLT5pX3ZlcnNpb24rKzsKIAlleHQ0X21hcmtfaW5vZGVfZGlydHkoaGFuZGxlLCBkaXIp OwpAQCAtMjk4Nyw3ICsyOTg3LDcgQEAgc3RhdGljIGludCBleHQ0X3JtZGlyKHN0cnVjdCBpbm9k ZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiAJICogcmVjb3ZlcnkuICovCiAJaW5vZGUt Pmlfc2l6ZSA9IDA7CiAJZXh0NF9vcnBoYW5fYWRkKGhhbmRsZSwgaW5vZGUpOwotCWlub2RlLT5p X2N0aW1lID0gZGlyLT5pX2N0aW1lID0gZGlyLT5pX210aW1lID0gZXh0NF9jdXJyZW50X3RpbWUo aW5vZGUpOworCWlub2RlLT5pX2N0aW1lID0gZGlyLT5pX2N0aW1lID0gZGlyLT5pX210aW1lID0g Y3VycmVudF90aW1lKGlub2RlKTsKIAlleHQ0X21hcmtfaW5vZGVfZGlydHkoaGFuZGxlLCBpbm9k ZSk7CiAJZXh0NF9kZWNfY291bnQoaGFuZGxlLCBkaXIpOwogCWV4dDRfdXBkYXRlX2R4X2ZsYWco ZGlyKTsKQEAgLTMwNTAsMTMgKzMwNTAsMTMgQEAgc3RhdGljIGludCBleHQ0X3VubGluayhzdHJ1 Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQogCXJldHZhbCA9IGV4dDRfZGVs ZXRlX2VudHJ5KGhhbmRsZSwgZGlyLCBkZSwgYmgpOwogCWlmIChyZXR2YWwpCiAJCWdvdG8gZW5k X3VubGluazsKLQlkaXItPmlfY3RpbWUgPSBkaXItPmlfbXRpbWUgPSBleHQ0X2N1cnJlbnRfdGlt ZShkaXIpOworCWRpci0+aV9jdGltZSA9IGRpci0+aV9tdGltZSA9IGN1cnJlbnRfdGltZShkaXIp OwogCWV4dDRfdXBkYXRlX2R4X2ZsYWcoZGlyKTsKIAlleHQ0X21hcmtfaW5vZGVfZGlydHkoaGFu ZGxlLCBkaXIpOwogCWRyb3BfbmxpbmsoaW5vZGUpOwogCWlmICghaW5vZGUtPmlfbmxpbmspCiAJ CWV4dDRfb3JwaGFuX2FkZChoYW5kbGUsIGlub2RlKTsKLQlpbm9kZS0+aV9jdGltZSA9IGV4dDRf Y3VycmVudF90aW1lKGlub2RlKTsKKwlpbm9kZS0+aV9jdGltZSA9IGN1cnJlbnRfdGltZShpbm9k ZSk7CiAJZXh0NF9tYXJrX2lub2RlX2RpcnR5KGhhbmRsZSwgaW5vZGUpOwogCiBlbmRfdW5saW5r OgpAQCAtMzI1NCw3ICszMjU0LDcgQEAgc3RhdGljIGludCBleHQ0X2xpbmsoc3RydWN0IGRlbnRy eSAqb2xkX2RlbnRyeSwKIAlpZiAoSVNfRElSU1lOQyhkaXIpKQogCQlleHQ0X2hhbmRsZV9zeW5j KGhhbmRsZSk7CiAKLQlpbm9kZS0+aV9jdGltZSA9IGV4dDRfY3VycmVudF90aW1lKGlub2RlKTsK Kwlpbm9kZS0+aV9jdGltZSA9IGN1cnJlbnRfdGltZShpbm9kZSk7CiAJZXh0NF9pbmNfY291bnQo aGFuZGxlLCBpbm9kZSk7CiAJaWhvbGQoaW5vZGUpOwogCkBAIC0zMzgxLDcgKzMzODEsNyBAQCBz dGF0aWMgaW50IGV4dDRfc2V0ZW50KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBleHQ0X3JlbmFt ZW50ICplbnQsCiAJCWVudC0+ZGUtPmZpbGVfdHlwZSA9IGZpbGVfdHlwZTsKIAllbnQtPmRpci0+ aV92ZXJzaW9uKys7CiAJZW50LT5kaXItPmlfY3RpbWUgPSBlbnQtPmRpci0+aV9tdGltZSA9Ci0J CWV4dDRfY3VycmVudF90aW1lKGVudC0+ZGlyKTsKKwkJY3VycmVudF90aW1lKGVudC0+ZGlyKTsK IAlleHQ0X21hcmtfaW5vZGVfZGlydHkoaGFuZGxlLCBlbnQtPmRpcik7CiAJQlVGRkVSX1RSQUNF KGVudC0+YmgsICJjYWxsIGV4dDRfaGFuZGxlX2RpcnR5X21ldGFkYXRhIik7CiAJaWYgKCFlbnQt PmlubGluZWQpIHsKQEAgLTM2NTEsNyArMzY1MSw3IEBAIHN0YXRpYyBpbnQgZXh0NF9yZW5hbWUo c3RydWN0IGlub2RlICpvbGRfZGlyLCBzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LAogCSAqIExp a2UgbW9zdCBvdGhlciBVbml4IHN5c3RlbXMsIHNldCB0aGUgY3RpbWUgZm9yIGlub2RlcyBvbiBh CiAJICogcmVuYW1lLgogCSAqLwotCW9sZC5pbm9kZS0+aV9jdGltZSA9IGV4dDRfY3VycmVudF90 aW1lKG9sZC5pbm9kZSk7CisJb2xkLmlub2RlLT5pX2N0aW1lID0gY3VycmVudF90aW1lKG9sZC5p bm9kZSk7CiAJZXh0NF9tYXJrX2lub2RlX2RpcnR5KGhhbmRsZSwgb2xkLmlub2RlKTsKIAogCWlm ICghd2hpdGVvdXQpIHsKQEAgLTM2NjMsOSArMzY2Myw5IEBAIHN0YXRpYyBpbnQgZXh0NF9yZW5h bWUoc3RydWN0IGlub2RlICpvbGRfZGlyLCBzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LAogCiAJ aWYgKG5ldy5pbm9kZSkgewogCQlleHQ0X2RlY19jb3VudChoYW5kbGUsIG5ldy5pbm9kZSk7Ci0J CW5ldy5pbm9kZS0+aV9jdGltZSA9IGV4dDRfY3VycmVudF90aW1lKG5ldy5pbm9kZSk7CisJCW5l dy5pbm9kZS0+aV9jdGltZSA9IGN1cnJlbnRfdGltZShuZXcuaW5vZGUpOwogCX0KLQlvbGQuZGly LT5pX2N0aW1lID0gb2xkLmRpci0+aV9tdGltZSA9IGV4dDRfY3VycmVudF90aW1lKG9sZC5kaXIp OworCW9sZC5kaXItPmlfY3RpbWUgPSBvbGQuZGlyLT5pX210aW1lID0gY3VycmVudF90aW1lKG9s ZC5kaXIpOwogCWV4dDRfdXBkYXRlX2R4X2ZsYWcob2xkLmRpcik7CiAJaWYgKG9sZC5kaXJfYmgp IHsKIAkJcmV0dmFsID0gZXh0NF9yZW5hbWVfZGlyX2ZpbmlzaChoYW5kbGUsICZvbGQsIG5ldy5k aXItPmlfaW5vKTsKQEAgLTM3MjMsNiArMzcyMyw3IEBAIHN0YXRpYyBpbnQgZXh0NF9jcm9zc19y ZW5hbWUoc3RydWN0IGlub2RlICpvbGRfZGlyLCBzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LAog CX07CiAJdTggbmV3X2ZpbGVfdHlwZTsKIAlpbnQgcmV0dmFsOworCXN0cnVjdCB0aW1lc3BlYyBj dGltZTsKIAogCWlmICgoZXh0NF9lbmNyeXB0ZWRfaW5vZGUob2xkX2RpcikgfHwKIAkgICAgIGV4 dDRfZW5jcnlwdGVkX2lub2RlKG5ld19kaXIpKSAmJgpAQCAtMzgyMyw4ICszODI0LDkgQEAgc3Rh dGljIGludCBleHQ0X2Nyb3NzX3JlbmFtZShzdHJ1Y3QgaW5vZGUgKm9sZF9kaXIsIHN0cnVjdCBk ZW50cnkgKm9sZF9kZW50cnksCiAJICogTGlrZSBtb3N0IG90aGVyIFVuaXggc3lzdGVtcywgc2V0 IHRoZSBjdGltZSBmb3IgaW5vZGVzIG9uIGEKIAkgKiByZW5hbWUuCiAJICovCi0Jb2xkLmlub2Rl LT5pX2N0aW1lID0gZXh0NF9jdXJyZW50X3RpbWUob2xkLmlub2RlKTsKLQluZXcuaW5vZGUtPmlf Y3RpbWUgPSBleHQ0X2N1cnJlbnRfdGltZShuZXcuaW5vZGUpOworCWN0aW1lID0gY3VycmVudF90 aW1lKG9sZC5pbm9kZSk7CisJb2xkLmlub2RlLT5pX2N0aW1lID0gY3RpbWU7CisJbmV3Lmlub2Rl LT5pX2N0aW1lID0gY3RpbWU7CiAJZXh0NF9tYXJrX2lub2RlX2RpcnR5KGhhbmRsZSwgb2xkLmlu b2RlKTsKIAlleHQ0X21hcmtfaW5vZGVfZGlydHkoaGFuZGxlLCBuZXcuaW5vZGUpOwogCmRpZmYg LS1naXQgYS9mcy9leHQ0L3N1cGVyLmMgYi9mcy9leHQ0L3N1cGVyLmMKaW5kZXggNDU1ODljOC4u Zjg2ZDBjYiAxMDA2NDQKLS0tIGEvZnMvZXh0NC9zdXBlci5jCisrKyBiL2ZzL2V4dDQvc3VwZXIu YwpAQCAtNTM1MSw3ICs1MzUxLDcgQEAgc3RhdGljIGludCBleHQ0X3F1b3RhX29mZihzdHJ1Y3Qg c3VwZXJfYmxvY2sgKnNiLCBpbnQgdHlwZSkKIAloYW5kbGUgPSBleHQ0X2pvdXJuYWxfc3RhcnQo aW5vZGUsIEVYVDRfSFRfUVVPVEEsIDEpOwogCWlmIChJU19FUlIoaGFuZGxlKSkKIAkJZ290byBv dXQ7Ci0JaW5vZGUtPmlfbXRpbWUgPSBpbm9kZS0+aV9jdGltZSA9IENVUlJFTlRfVElNRTsKKwlp bm9kZS0+aV9tdGltZSA9IGlub2RlLT5pX2N0aW1lID0gY3VycmVudF90aW1lKGlub2RlKTsKIAll eHQ0X21hcmtfaW5vZGVfZGlydHkoaGFuZGxlLCBpbm9kZSk7CiAJZXh0NF9qb3VybmFsX3N0b3Ao aGFuZGxlKTsKIApkaWZmIC0tZ2l0IGEvZnMvZXh0NC94YXR0ci5jIGIvZnMvZXh0NC94YXR0ci5j CmluZGV4IGQ3N2JlOWUuLjljMWJiNWMgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQveGF0dHIuYworKysg Yi9mcy9leHQ0L3hhdHRyLmMKQEAgLTEyNDksNyArMTI0OSw3IEBAIGV4dDRfeGF0dHJfc2V0X2hh bmRsZShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbmFtZV9pbmRl eCwKIAl9CiAJaWYgKCFlcnJvcikgewogCQlleHQ0X3hhdHRyX3VwZGF0ZV9zdXBlcl9ibG9jayho YW5kbGUsIGlub2RlLT5pX3NiKTsKLQkJaW5vZGUtPmlfY3RpbWUgPSBleHQ0X2N1cnJlbnRfdGlt ZShpbm9kZSk7CisJCWlub2RlLT5pX2N0aW1lID0gY3VycmVudF90aW1lKGlub2RlKTsKIAkJaWYg KCF2YWx1ZSkKIAkJCWV4dDRfY2xlYXJfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTk9f RVhQQU5EKTsKIAkJZXJyb3IgPSBleHQ0X21hcmtfaWxvY19kaXJ0eShoYW5kbGUsIGlub2RlLCAm aXMuaWxvYyk7Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWTIwMzggbWFpbGluZyBsaXN0ClkyMDM4QGxpc3RzLmxpbmFyby5vcmcKaHR0 cHM6Ly9saXN0cy5saW5hcm8ub3JnL21haWxtYW4vbGlzdGluZm8veTIwMzgK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934672AbcKKSdk (ORCPT ); Fri, 11 Nov 2016 13:33:40 -0500 Received: from mail-pg0-f65.google.com ([74.125.83.65]:35117 "EHLO mail-pg0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756816AbcKKSdh (ORCPT ); Fri, 11 Nov 2016 13:33:37 -0500 From: Deepa Dinamani To: linux-kernel@vger.kernel.org, tytso@mit.edu, adilger.kernel@dilger.ca, linux-ext4@vger.kernel.org Cc: arnd@arndb.de, y2038@lists.linaro.org Subject: [RESEND PATCH] fs: ext4: Use current_time() for inode timestamps Date: Fri, 11 Nov 2016 10:32:57 -0800 Message-Id: <1478889177-4107-1-git-send-email-deepa.kernel@gmail.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- 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 dfa5199..fd38993 100644 --- a/fs/ext4/acl.c +++ b/fs/ext4/acl.c @@ -196,7 +196,7 @@ __ext4_set_acl(handle_t *handle, struct inode *inode, int type, error = posix_acl_update_mode(inode, &inode->i_mode, &acl); if (error) return error; - inode->i_ctime = ext4_current_time(inode); + inode->i_ctime = current_time(inode); ext4_mark_inode_dirty(handle, inode); } break; diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index 282a51b..6789379 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h @@ -1532,12 +1532,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 c930a01..786be87 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -4725,7 +4725,7 @@ static int ext4_alloc_file_blocks(struct file *file, ext4_lblk_t offset, 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; @@ -4853,7 +4853,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); @@ -4878,7 +4878,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 { @@ -5568,7 +5568,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: @@ -5678,7 +5678,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 170421e..088afe0 100644 --- a/fs/ext4/ialloc.c +++ b/fs/ext4/ialloc.c @@ -1039,7 +1039,7 @@ struct inode *__ext4_new_inode(handle_t *handle, struct inode *dir, /* 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 @@ void ext4_inline_data_truncate(struct inode *inode, int *has_inline) 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 3d58b2b..926ed1f 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -4029,7 +4029,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); @@ -4183,7 +4183,7 @@ void ext4_truncate(struct inode *inode) 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); @@ -5157,7 +5157,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 bf5ae8e..3bba9e9 100644 --- a/fs/ext4/ioctl.c +++ b/fs/ext4/ioctl.c @@ -153,7 +153,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++; @@ -272,7 +272,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: @@ -368,7 +368,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) @@ -500,7 +500,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 104f8bf..eadba91 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c @@ -1941,7 +1941,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 @@ static int ext4_link(struct dentry *old_dentry, 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 45589c8..f86d0cb 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -5351,7 +5351,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 d77be9e..9c1bb5c 100644 --- a/fs/ext4/xattr.c +++ b/fs/ext4/xattr.c @@ -1249,7 +1249,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); -- 2.7.4