From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759147AbYFXNhy (ORCPT ); Tue, 24 Jun 2008 09:37:54 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1758615AbYFXNhg (ORCPT ); Tue, 24 Jun 2008 09:37:36 -0400 Received: from mtagate2.uk.ibm.com ([195.212.29.135]:49706 "EHLO mtagate2.uk.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756168AbYFXNhZ (ORCPT ); Tue, 24 Jun 2008 09:37:25 -0400 Message-ID: <4860F88B.6090909@fr.ibm.com> Date: Tue, 24 Jun 2008 15:37:15 +0200 From: Daniel Lezcano User-Agent: Thunderbird 2.0.0.14 (X11/20080501) MIME-Version: 1.0 To: Tejun Heo CC: Benjamin Thery , Greg Kroah-Hartman , Andrew Morton , Eric Biederman , Serge Hallyn , linux-kernel@vger.kernel.org, Al Viro , Linux Containers Subject: Re: [PATCH 05/11] sysfs: sysfs_chmod_file handle multiple superblocks References: <20080618170729.808539948@theryb.frec.bull.fr> <20080618170730.853353875@theryb.frec.bull.fr> <485DD93A.6020600@gmail.com> <486018CB.80005@fr.ibm.com> <48607BE7.2060203@gmail.com> In-Reply-To: <48607BE7.2060203@gmail.com> Content-Type: multipart/mixed; boundary="------------010807070203030908050000" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is a multi-part message in MIME format. --------------010807070203030908050000 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Tejun Heo wrote: > Hello, > > Daniel Lezcano wrote: >>> I think it would be great if sysfs_chmod_file can do all-or-nothing >>> instead of failing half way through but given the interface of >>> notify_change(), it could be difficult to implement. Any ideas? >> Is it acceptable to queue the notifications in a list until we are in >> the loop and loop again to notify when exiting the first loop without >> error ? > > Can you please take a look at the following patch? > > http://article.gmane.org/gmane.linux.file-systems/24484 > > Which replaces notify_change() call to two calls to sysfs_setattr() and > fsnotify_change(). The latter never fails and the former should always > succeed if inode_change_ok() succeeds (inode_setattr() never fails > unless the size is changing), so I think the correct thing to do is... > > * Separate out sysfs_do_setattr() which doesn't do inode_change_ok() and > just sets the attributes. Making it a void function which triggers > WARN_ON() when inode_setattr() fails would be a good idea. > > * Implement sysfs_chmod_file() in similar way rename/move are > implemented - allocate all resources and check conditions and then iff > everything looks okay commit the operation by calling sysfs_do_setattr(). > > How does that sound? Does this patch looks like what you are describing ? Sauf indication contraire ci-dessus: Compagnie IBM France Siège Social : Tour Descartes, 2, avenue Gambetta, La Défense 5, 92400 Courbevoie RCS Nanterre 552 118 465 Forme Sociale : S.A.S. Capital Social : 542.737.118 ? SIREN/SIRET : 552 118 465 02430 --------------010807070203030908050000 Content-Type: text/plain; name="separate-sysfs_setattr.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="separate-sysfs_setattr.patch" U3ViamVjdDogc3lzZnNfY2htb2RfZmlsZSBjYW4gZG8gYWxsLW9yLW5vdGhpbmcKRnJvbTog RGFuaWVsIExlemNhbm8gPGRsZXpjYW5vQGZyLmlibS5jb20+CklkZWEgZnJvbTogVGVqdW4g VGVvIDxodGVqdW5AZ21haWwuY29tPgoKIkkgdGhpbmsgaXQgd291bGQgYmUgZ3JlYXQgaWYg c3lzZnNfY2htb2RfZmlsZSBjYW4gZG8gYWxsLW9yLW5vdGhpbmcKaW5zdGVhZCBvZiBmYWls aW5nIGhhbGYgd2F5IHRocm91Z2ggYnV0IGdpdmVuIHRoZSBpbnRlcmZhY2Ugb2YKbm90aWZ5 X2NoYW5nZSgpLCBpdCBjb3VsZCBiZSBkaWZmaWN1bHQgdG8gaW1wbGVtZW50LgoKQ2FuIHlv dSBwbGVhc2UgdGFrZSBhIGxvb2sgYXQgdGhlIGZvbGxvd2luZyBwYXRjaD8KCmh0dHA6Ly9h cnRpY2xlLmdtYW5lLm9yZy9nbWFuZS5saW51eC5maWxlLXN5c3RlbXMvMjQ0ODQKCldoaWNo IHJlcGxhY2VzIG5vdGlmeV9jaGFuZ2UoKSBjYWxsIHRvIHR3byBjYWxscyB0byBzeXNmc19z ZXRhdHRyKCkgYW5kCmZzbm90aWZ5X2NoYW5nZSgpLiAgVGhlIGxhdHRlciBuZXZlciBmYWls cyBhbmQgdGhlIGZvcm1lciBzaG91bGQgYWx3YXlzCnN1Y2NlZWQgaWYgaW5vZGVfY2hhbmdl X29rKCkgc3VjY2VlZHMgKGlub2RlX3NldGF0dHIoKSBuZXZlciBmYWlscwp1bmxlc3MgdGhl IHNpemUgaXMgY2hhbmdpbmcpLCBzbyBJIHRoaW5rIHRoZSBjb3JyZWN0IHRoaW5nIHRvIGRv IGlzLi4uCgoqIFNlcGFyYXRlIG91dCBzeXNmc19kb19zZXRhdHRyKCkgd2hpY2ggZG9lc24n dCBkbyBpbm9kZV9jaGFuZ2Vfb2soKSBhbmQKanVzdCBzZXRzIHRoZSBhdHRyaWJ1dGVzLiAg TWFraW5nIGl0IGEgdm9pZCBmdW5jdGlvbiB3aGljaCB0cmlnZ2VycwpXQVJOX09OKCkgd2hl biBpbm9kZV9zZXRhdHRyKCkgZmFpbHMgd291bGQgYmUgYSBnb29kIGlkZWEuIgoKU2lnbmVk LW9mZi1ieTogRGFuaWVsIExlemNhbm8gPGRsZXpjYW5vQGZyLmlibS5jb20+Ci0tLQogZnMv c3lzZnMvZmlsZS5jICB8ICAgMjMgKysrKysrKysrKysrLS0tLS0KIGZzL3N5c2ZzL2lub2Rl LmMgfCAgIDczICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIGZzL3N5c2ZzL3N5c2ZzLmggfCAgICAzICsrCiAzIGZpbGVzIGNoYW5n ZWQsIDYzIGluc2VydGlvbnMoKyksIDM2IGRlbGV0aW9ucygtKQoKSW5kZXg6IDIuNi4yNi1y YzUtbW0zL2ZzL3N5c2ZzL2lub2RlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gMi42LjI2LXJjNS1t bTMub3JpZy9mcy9zeXNmcy9pbm9kZS5jCisrKyAyLjYuMjYtcmM1LW1tMy9mcy9zeXNmcy9p bm9kZS5jCkBAIC00Miw0MSArNDIsMjkgQEAgaW50IF9faW5pdCBzeXNmc19pbm9kZV9pbml0 KHZvaWQpCiAJcmV0dXJuIGJkaV9pbml0KCZzeXNmc19iYWNraW5nX2Rldl9pbmZvKTsKIH0K IAotaW50IHN5c2ZzX3NldGF0dHIoc3RydWN0IGRlbnRyeSAqIGRlbnRyeSwgc3RydWN0IGlh dHRyICogaWF0dHIpCitzdHJ1Y3QgaWF0dHIgKnN5c2ZzX2FsbG9jX2lhdHRyKHN0cnVjdCBz eXNmc19kaXJlbnQgKnNkKQogewotCXN0cnVjdCBpbm9kZSAqIGlub2RlID0gZGVudHJ5LT5k X2lub2RlOwotCXN0cnVjdCBzeXNmc19kaXJlbnQgKiBzZCA9IGRlbnRyeS0+ZF9mc2RhdGE7 CiAJc3RydWN0IGlhdHRyICogc2RfaWF0dHI7Ci0JdW5zaWduZWQgaW50IGlhX3ZhbGlkID0g aWF0dHItPmlhX3ZhbGlkOwotCWludCBlcnJvcjsKIAotCWlmICghc2QpCi0JCXJldHVybiAt RUlOVkFMOwotCi0Jc2RfaWF0dHIgPSBzZC0+c19pYXR0cjsKKwlzZF9pYXR0ciA9IGt6YWxs b2Moc2l6ZW9mKHN0cnVjdCBpYXR0ciksIEdGUF9LRVJORUwpOworCWlmIChzZF9pYXR0cikg eworCQlzZF9pYXR0ci0+aWFfbW9kZSA9IHNkLT5zX21vZGU7CisJCXNkX2lhdHRyLT5pYV91 aWQgPSBzZF9pYXR0ci0+aWFfZ2lkID0gMDsKKwkJc2RfaWF0dHItPmlhX2F0aW1lID0gc2Rf aWF0dHItPmlhX210aW1lID0gXAorCQkJc2RfaWF0dHItPmlhX2N0aW1lID0gQ1VSUkVOVF9U SU1FOworCX0KKwlyZXR1cm4gc2RfaWF0dHI7Cit9CiAKLQllcnJvciA9IGlub2RlX2NoYW5n ZV9vayhpbm9kZSwgaWF0dHIpOwotCWlmIChlcnJvcikKLQkJcmV0dXJuIGVycm9yOwordm9p ZCBzeXNmc19kb19zZXRhdHRyKHN0cnVjdCBzeXNmc19kaXJlbnQgKiBzZCwgc3RydWN0IGlu b2RlICogaW5vZGUsCisJCSAgICAgIHN0cnVjdCBpYXR0ciAqIGlhdHRyKQoreworCXVuc2ln bmVkIGludCBpYV92YWxpZCA9IGlhdHRyLT5pYV92YWxpZDsKKwlzdHJ1Y3QgaWF0dHIgKiBz ZF9pYXR0ciA9IHNkLT5zX2lhdHRyOwogCiAJaWF0dHItPmlhX3ZhbGlkICY9IH5BVFRSX1NJ WkU7IC8qIGlnbm9yZSBzaXplIGNoYW5nZXMgKi8KIAotCWVycm9yID0gaW5vZGVfc2V0YXR0 cihpbm9kZSwgaWF0dHIpOwotCWlmIChlcnJvcikKLQkJcmV0dXJuIGVycm9yOwotCi0JaWYg KCFzZF9pYXR0cikgewotCQkvKiBzZXR0aW5nIGF0dHJpYnV0ZXMgZm9yIHRoZSBmaXJzdCB0 aW1lLCBhbGxvY2F0ZSBub3cgKi8KLQkJc2RfaWF0dHIgPSBremFsbG9jKHNpemVvZihzdHJ1 Y3QgaWF0dHIpLCBHRlBfS0VSTkVMKTsKLQkJaWYgKCFzZF9pYXR0cikKLQkJCXJldHVybiAt RU5PTUVNOwotCQkvKiBhc3NpZ24gZGVmYXVsdCBhdHRyaWJ1dGVzICovCi0JCXNkX2lhdHRy LT5pYV9tb2RlID0gc2QtPnNfbW9kZTsKLQkJc2RfaWF0dHItPmlhX3VpZCA9IDA7Ci0JCXNk X2lhdHRyLT5pYV9naWQgPSAwOwotCQlzZF9pYXR0ci0+aWFfYXRpbWUgPSBzZF9pYXR0ci0+ aWFfbXRpbWUgPSBzZF9pYXR0ci0+aWFfY3RpbWUgPSBDVVJSRU5UX1RJTUU7Ci0JCXNkLT5z X2lhdHRyID0gc2RfaWF0dHI7Ci0JfQorCVdBUk5fT04oaW5vZGVfc2V0YXR0cihpbm9kZSwg aWF0dHIpKTsKIAogCS8qIGF0dHJpYnV0ZXMgd2VyZSBjaGFuZ2VkIGF0bGVhc3Qgb25jZSBp biBwYXN0ICovCiAKQEAgLTEwMCw4ICs4OCwzNSBAQCBpbnQgc3lzZnNfc2V0YXR0cihzdHJ1 Y3QgZGVudHJ5ICogZGVudHJ5CiAJCQltb2RlICY9IH5TX0lTR0lEOwogCQlzZF9pYXR0ci0+ aWFfbW9kZSA9IHNkLT5zX21vZGUgPSBtb2RlOwogCX0KK30KKworaW50IHN5c2ZzX3NldGF0 dHIoc3RydWN0IGRlbnRyeSAqIGRlbnRyeSwgc3RydWN0IGlhdHRyICogaWF0dHIpCit7CisJ c3RydWN0IGlub2RlICogaW5vZGUgPSBkZW50cnktPmRfaW5vZGU7CisJc3RydWN0IHN5c2Zz X2RpcmVudCAqIHNkID0gZGVudHJ5LT5kX2ZzZGF0YTsKKwlzdHJ1Y3QgaWF0dHIgKiBzZF9p YXR0cjsKKwlpbnQgZXJyb3I7CisKKwlpZiAoIXNkKQorCQlyZXR1cm4gLUVJTlZBTDsKKwor CWVycm9yID0gaW5vZGVfY2hhbmdlX29rKGlub2RlLCBpYXR0cik7CisJaWYgKGVycm9yKQor CQlyZXR1cm4gZXJyb3I7CisKKwlzZF9pYXR0ciA9IHNkLT5zX2lhdHRyOworCisJaWYgKCFz ZF9pYXR0cikgeworCQkvKiBzZXR0aW5nIGF0dHJpYnV0ZXMgZm9yIHRoZSBmaXJzdCB0aW1l LCBhbGxvY2F0ZSBub3cgKi8KKwkJc2RfaWF0dHIgPSBzeXNmc19hbGxvY19pYXR0cihzZCk7 CisJCWlmICghc2RfaWF0dHIpCisJCQlyZXR1cm4gLUVOT01FTTsKKwkJc2QtPnNfaWF0dHIg PSBzZF9pYXR0cjsKKwl9CisKKwlzeXNmc19kb19zZXRhdHRyKHNkLCBpbm9kZSwgaWF0dHIp OwogCi0JcmV0dXJuIGVycm9yOworCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW5saW5lIHZv aWQgc2V0X2RlZmF1bHRfaW5vZGVfYXR0cihzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgbW9kZV90 IG1vZGUpCkluZGV4OiAyLjYuMjYtcmM1LW1tMy9mcy9zeXNmcy9maWxlLmMKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gMi42LjI2LXJjNS1tbTMub3JpZy9mcy9zeXNmcy9maWxlLmMKKysrIDIuNi4y Ni1yYzUtbW0zL2ZzL3N5c2ZzL2ZpbGUuYwpAQCAtNTc3LDYgKzU3Nyw3IEBAIGludCBzeXNm c19jaG1vZF9maWxlKHN0cnVjdCBrb2JqZWN0ICprb2IKIAlzdHJ1Y3QgZGVudHJ5ICp2aWN0 aW0gPSBOVUxMOwogCXN0cnVjdCBpbm9kZSAqIGlub2RlOwogCXN0cnVjdCBpYXR0ciBuZXdh dHRyczsKKwlzdHJ1Y3QgaWF0dHIgKiBzZF9pYXR0cjsKIAlpbnQgcmM7CiAKIAlyYyA9IC1F Tk9FTlQ7CkBAIC01OTMsNiArNTk0LDE0IEBAIGludCBzeXNmc19jaG1vZF9maWxlKHN0cnVj dCBrb2JqZWN0ICprb2IKIAkJZ290byBvdXQ7CiAJfQogCisJc2RfaWF0dHIgPSB2aWN0aW1f c2QtPnNfaWF0dHI7CisJaWYgKCFzZF9pYXR0cikgeworCQlzZF9pYXR0ciA9IHN5c2ZzX2Fs bG9jX2lhdHRyKHZpY3RpbV9zZCk7CisJCWlmICghc2RfaWF0dHIpCisJCQlyZXR1cm4gLUVO T01FTTsKKwkJdmljdGltX3NkLT5zX2lhdHRyID0gc2RfaWF0dHI7CisJfQorCiAJaW5vZGUg PSB2aWN0aW0tPmRfaW5vZGU7CiAKIAltdXRleF9sb2NrKCZpbm9kZS0+aV9tdXRleCk7CkBA IC02MDAsMTQgKzYwOSwxNCBAQCBpbnQgc3lzZnNfY2htb2RfZmlsZShzdHJ1Y3Qga29iamVj dCAqa29iCiAJbmV3YXR0cnMuaWFfbW9kZSA9IChtb2RlICYgU19JQUxMVUdPKSB8IChpbm9k ZS0+aV9tb2RlICYgflNfSUFMTFVHTyk7CiAJbmV3YXR0cnMuaWFfdmFsaWQgPSBBVFRSX01P REUgfCBBVFRSX0NUSU1FOwogCW5ld2F0dHJzLmlhX2N0aW1lID0gY3VycmVudF9mc190aW1l KGlub2RlLT5pX3NiKTsKLQlyYyA9IHN5c2ZzX3NldGF0dHIodmljdGltLCAmbmV3YXR0cnMp OwogCi0JaWYgKHJjID09IDApIHsKLQkJZnNub3RpZnlfY2hhbmdlKHZpY3RpbSwgbmV3YXR0 cnMuaWFfdmFsaWQpOwotCQltdXRleF9sb2NrKCZzeXNmc19tdXRleCk7Ci0JCXZpY3RpbV9z ZC0+c19tb2RlID0gbmV3YXR0cnMuaWFfbW9kZTsKLQkJbXV0ZXhfdW5sb2NrKCZzeXNmc19t dXRleCk7Ci0JfQorCS8qIFRoZXNlIHR3byBmdW5jdGlvbnMgZG8gbm90IGZhaWwgKi8KKwlz eXNmc19kb19zZXRhdHRyKHZpY3RpbV9zZCwgaW5vZGUsICZuZXdhdHRycyk7CisJZnNub3Rp ZnlfY2hhbmdlKHZpY3RpbSwgbmV3YXR0cnMuaWFfdmFsaWQpOworCisJbXV0ZXhfbG9jaygm c3lzZnNfbXV0ZXgpOworCXZpY3RpbV9zZC0+c19tb2RlID0gbmV3YXR0cnMuaWFfbW9kZTsK KwltdXRleF91bmxvY2soJnN5c2ZzX211dGV4KTsKIAogCW11dGV4X3VubG9jaygmaW5vZGUt PmlfbXV0ZXgpOwogIG91dDoKSW5kZXg6IDIuNi4yNi1yYzUtbW0zL2ZzL3N5c2ZzL3N5c2Zz LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gMi42LjI2LXJjNS1tbTMub3JpZy9mcy9zeXNmcy9zeXNm cy5oCisrKyAyLjYuMjYtcmM1LW1tMy9mcy9zeXNmcy9zeXNmcy5oCkBAIC0xNDMsOSArMTQz LDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzeXNmc19wdXQoc3RydWN0IHN5c2YKICAqIGlu b2RlLmMKICAqLwogc3RydWN0IGlub2RlICpzeXNmc19nZXRfaW5vZGUoc3RydWN0IHN5c2Zz X2RpcmVudCAqc2QpOworc3RydWN0IGlhdHRyICpzeXNmc19hbGxvY19pYXR0cihzdHJ1Y3Qg c3lzZnNfZGlyZW50ICpzZCk7CiBpbnQgc3lzZnNfc2V0YXR0cihzdHJ1Y3QgZGVudHJ5ICpk ZW50cnksIHN0cnVjdCBpYXR0ciAqaWF0dHIpOwogaW50IHN5c2ZzX2hhc2hfYW5kX3JlbW92 ZShzdHJ1Y3Qgc3lzZnNfZGlyZW50ICpkaXJfc2QsIGNvbnN0IGNoYXIgKm5hbWUpOwogaW50 IHN5c2ZzX2lub2RlX2luaXQodm9pZCk7Cit2b2lkIHN5c2ZzX2RvX3NldGF0dHIoc3RydWN0 IHN5c2ZzX2RpcmVudCAqIHNkLCBzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwKKwkJICAgICAgc3Ry dWN0IGlhdHRyICogaWF0dHIpOwogCiAvKgogICogZmlsZS5jCg== --------------010807070203030908050000--