From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Q (Igor Mammedov)" Subject: Re: review 5, was Re: projected date for mount.cifs to support DFS junction points Date: Sun, 9 Mar 2008 01:21:13 +0300 Message-ID: <71bff3710803081421l7f248614t44762d00bbf17af@mail.gmail.com> References: <1199988975.7483.3.camel@gn2.draper.com> <524f69650801101228o3639363cp4c9710d747b71ead@mail.gmail.com> <20080111090749.GA14910@infradead.org> <524f69650801110805y56cdbe4nf7587e396b70f32c@mail.gmail.com> <20080113202144.GB24573@infradead.org> <47B5BFCF.60304@mail.ru> <47CD42DA.3070809@mail.ru> <20080308184127.GA1461@infradead.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_2284_32216394.1205014873149" Cc: linux-fsdevel , Steve French , linux-cifs-client@lists.samba.org To: "Christoph Hellwig" Return-path: In-Reply-To: <20080308184127.GA1461@infradead.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-cifs-client-bounces+glfc-linux-cifs-client=gmane.org@lists.samba.org Errors-To: linux-cifs-client-bounces+glfc-linux-cifs-client=gmane.org@lists.samba.org List-Id: linux-fsdevel.vger.kernel.org ------=_Part_2284_32216394.1205014873149 Content-Type: multipart/alternative; boundary="----=_Part_2285_10086827.1205014873149" ------=_Part_2285_10086827.1205014873149 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline Thanks for your comments. Fixed patch is attached. On Sat, Mar 8, 2008 at 9:41 PM, Christoph Hellwig wrote: > On Tue, Mar 04, 2008 at 03:38:50PM +0300, Q (Igor Mammedov) wrote: > > Hi Steve, > > > > Looked through inode.c code again and rewrote/simplified patch5 > > See attachment for it. > > Thanks, this looks much better. A few (mostly cosmetic) comments: > > > >From 03c5dcdd566f59240de7843e0a4dd3c3468a0ace Mon Sep 17 00:00:00 2001 > From: Igor Mammedov > Date: Tue, 4 Mar 2008 15:12:27 +0300 > Subject: [PATCH] DFS patch that connects inode with dfs handling ops > if it is DFS junction point. > > +#define PATH_IN_DFS 1 > +#define PATH_NOT_IN_DFS 0 > +static void cifs_set_ops(const int in_dfs, struct inode *inode) > > > I think this would be better done as > > static void cifs_set_ops(struct inode *inode, bool is_dfs_referral) > > > Rationale: a) flags should always come last > b) if there's only two choices a boolean is better > than flags > > > + full_path = cifs_get_search_path(pTcon, search_path); > + tmp_path = full_path != search_path?full_path:NULL; > > tmp_path is only used to free full_path in case it's different > from search_path. It think it would be easier and more clear > to just guard the kfree with an > > if (full_path != search_path) > kfree(full_path); > > Or am I missing something? > > + > + if ((rc == -EREMOTE) && (in_dfs == PATH_NOT_IN_DFS)) { > > No need for the inner braces here, just > > if (rc == -EREMOTE && in_dfs == PATH_NOT_IN_DFS) { > > Or with my suggestions from above: > > if (rc == -EREMOTE && is_dfs_reffereal) { > > + kfree(tmp_path); > + return rc; > > Please only do this cleanup and return in one place and use > an goto out_free_path to jump there from the inside of the > function. > ------=_Part_2285_10086827.1205014873149 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline Thanks for your comments. Fixed patch is attached.

On Sat, Mar 8, 2008 at 9:41 PM, Christoph Hellwig <hch@infradead.org> wrote:
On Tue, Mar 04, 2008 at 03:38:50PM +0300, Q (Igor Mammedov) wrote:
> Hi Steve,
>
> Looked through inode.c code again and rewrote/simplified patch5
> See attachment for it.

Thanks, this looks much better.  A few (mostly cosmetic) comments:


>From 03c5dcdd566f59240de7843e0a4dd3c3468a0ace Mon Sep 17 00:00:00 2001
From: Igor Mammedov <niallain@gmail.com>
Date: Tue, 4 Mar 2008 15:12:27 +0300
Subject: [PATCH] DFS patch that connects inode with dfs handling ops
 if it is DFS junction point.

+#define PATH_IN_DFS 1
+#define PATH_NOT_IN_DFS 0
+static void cifs_set_ops(const int in_dfs, struct inode *inode)


       I think this would be better done as

static void cifs_set_ops(struct inode *inode, bool is_dfs_referral)


       Rationale:  a) flags should always come last
                   b) if there's only two choices a boolean is better
                      than flags


+       full_path = cifs_get_search_path(pTcon, search_path);
+       tmp_path = full_path != search_path?full_path:NULL;

       tmp_path is only used to free full_path in case it's different
       from search_path.  It think it would be easier and more clear
       to just guard the kfree with an

       if (full_path != search_path)
               kfree(full_path);

       Or am I missing something?

+
+               if ((rc == -EREMOTE) && (in_dfs == PATH_NOT_IN_DFS)) {

       No need for the inner braces here, just

               if (rc == -EREMOTE && in_dfs == PATH_NOT_IN_DFS) {

       Or with my suggestions from above:

               if (rc == -EREMOTE && is_dfs_reffereal) {

+               kfree(tmp_path);
+               return rc;

       Please only do this cleanup and return in one place and use
       an goto out_free_path to jump there from the inside of the
       function.

------=_Part_2285_10086827.1205014873149-- ------=_Part_2284_32216394.1205014873149 Content-Type: text/x-patch; name=0005-DFS-patch-that-connects-inode-with-dfs-handling-ops.090308.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_fdkqq4j50 Content-Disposition: attachment; filename=0005-DFS-patch-that-connects-inode-with-dfs-handling-ops.090308.patch RnJvbSBlOTkwMWIzZDA5ZTA5MzgyZmI3Mzk2M2RhNWY5NDc1YzliYmU2ZmIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiByb290IDxyb290QERNWl9ST1VURVIuKG5vbmUpPgpEYXRlOiBT dW4sIDkgTWFyIDIwMDggMDc6MDM6MzggLTA0MDAKU3ViamVjdDogW1BBVENIXSBERlMgcGF0Y2gg dGhhdCBjb25uZWN0cyBpbm9kZSB3aXRoIGRmcyBoYW5kbGluZyBvcHMKIGlmIGl0IGlzIERGUyBq dW5jdGlvbiBwb2ludC4KClNpZ25lZC1vZmYtYnk6IElnb3IgTWFtbWVkb3YgPG5pYWxsYWluQGdt YWlsLmNvbT4KLS0tCiBmcy9jaWZzL2lub2RlLmMgfCAgMTMzICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlcyBjaGFuZ2VkLCA3MSBp bnNlcnRpb25zKCspLCA2MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9mcy9jaWZzL2lub2Rl LmMgYi9mcy9jaWZzL2lub2RlLmMKaW5kZXggMjRlYjRkMy4uZTRiZmQ3MCAxMDA2NDQKLS0tIGEv ZnMvY2lmcy9pbm9kZS5jCisrKyBiL2ZzL2NpZnMvaW5vZGUuYwpAQCAtMzAsNyArMzAsNyBAQAog I2luY2x1ZGUgImNpZnNfZnNfc2IuaCIKIAogCi1zdGF0aWMgdm9pZCBjaWZzX3NldF9vcHMoc3Ry dWN0IGlub2RlICppbm9kZSkKK3N0YXRpYyB2b2lkIGNpZnNfc2V0X29wcyhzdHJ1Y3QgaW5vZGUg Kmlub2RlLCBjb25zdCBib29sIGlzX2Rmc19yZWZmZXJlYWwpCiB7CiAJc3RydWN0IGNpZnNfc2Jf aW5mbyAqY2lmc19zYiA9IENJRlNfU0IoaW5vZGUtPmlfc2IpOwogCkBAIC01Nyw4ICs1NywxMiBA QCBzdGF0aWMgdm9pZCBjaWZzX3NldF9vcHMoc3RydWN0IGlub2RlICppbm9kZSkKIAkJCWlub2Rl LT5pX2RhdGEuYV9vcHMgPSAmY2lmc19hZGRyX29wczsKIAkJYnJlYWs7CiAJY2FzZSBTX0lGRElS OgotCQlpbm9kZS0+aV9vcCA9ICZjaWZzX2Rpcl9pbm9kZV9vcHM7Ci0JCWlub2RlLT5pX2ZvcCA9 ICZjaWZzX2Rpcl9vcHM7CisJCWlmIChpc19kZnNfcmVmZmVyZWFsKSB7CisJCQlpbm9kZS0+aV9v cCA9ICZjaWZzX2Rmc19yZWZlcnJhbF9pbm9kZV9vcGVyYXRpb25zOworCQl9IGVsc2UgeworCQkJ aW5vZGUtPmlfb3AgPSAmY2lmc19kaXJfaW5vZGVfb3BzOworCQkJaW5vZGUtPmlfZm9wID0gJmNp ZnNfZGlyX29wczsKKwkJfQogCQlicmVhazsKIAljYXNlIFNfSUZMTks6CiAJCWlub2RlLT5pX29w ID0gJmNpZnNfc3ltbGlua19pbm9kZV9vcHM7CkBAIC0xNTMsNiArMTU3LDMwIEBAIHN0YXRpYyB2 b2lkIGNpZnNfdW5peF9pbmZvX3RvX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJc3Bpbl91 bmxvY2soJmlub2RlLT5pX2xvY2spOwogfQogCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAq Y2lmc19nZXRfc2VhcmNoX3BhdGgoc3RydWN0IGNpZnNUY29uSW5mbyAqcFRjb24sCisJCQkJCWNv bnN0IGNoYXIgKnNlYXJjaF9wYXRoKQoreworCWludCB0cmVlX2xlbjsKKwlpbnQgcGF0aF9sZW47 CisJY2hhciAqdG1wX3BhdGg7CisKKwlpZiAoIShwVGNvbi0+RmxhZ3MgJiBTTUJfU0hBUkVfSVNf SU5fREZTKSkKKwkJcmV0dXJuIHNlYXJjaF9wYXRoOworCisJLyogdXNlIGZ1bGwgcGF0aCBuYW1l IGZvciB3b3JraW5nIHdpdGggREZTICovCisJdHJlZV9sZW4gPSBzdHJubGVuKHBUY29uLT50cmVl TmFtZSwgTUFYX1RSRUVfU0laRSArIDEpOworCXBhdGhfbGVuID0gc3RybmxlbihzZWFyY2hfcGF0 aCwgTUFYX1BBVEhDT05GKTsKKworCXRtcF9wYXRoID0ga21hbGxvYyh0cmVlX2xlbitwYXRoX2xl bisxLCBHRlBfS0VSTkVMKTsKKwlpZiAodG1wX3BhdGggPT0gTlVMTCkKKwkJcmV0dXJuIHNlYXJj aF9wYXRoOworCisJc3RybmNweSh0bXBfcGF0aCwgcFRjb24tPnRyZWVOYW1lLCB0cmVlX2xlbik7 CisJc3RybmNweSh0bXBfcGF0aCt0cmVlX2xlbiwgc2VhcmNoX3BhdGgsIHBhdGhfbGVuKTsKKwl0 bXBfcGF0aFt0cmVlX2xlbitwYXRoX2xlbl0gPSAwOworCXJldHVybiB0bXBfcGF0aDsKK30KKwog aW50IGNpZnNfZ2V0X2lub2RlX2luZm9fdW5peChzdHJ1Y3QgaW5vZGUgKipwaW5vZGUsCiAJY29u c3QgdW5zaWduZWQgY2hhciAqc2VhcmNoX3BhdGgsIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGlu dCB4aWQpCiB7CkBAIC0xNjEsNDEgKzE4OSwyOCBAQCBpbnQgY2lmc19nZXRfaW5vZGVfaW5mb191 bml4KHN0cnVjdCBpbm9kZSAqKnBpbm9kZSwKIAlzdHJ1Y3QgY2lmc1Rjb25JbmZvICpwVGNvbjsK IAlzdHJ1Y3QgaW5vZGUgKmlub2RlOwogCXN0cnVjdCBjaWZzX3NiX2luZm8gKmNpZnNfc2IgPSBD SUZTX1NCKHNiKTsKLQljaGFyICp0bXBfcGF0aDsKKwljb25zdCB1bnNpZ25lZCBjaGFyICpmdWxs X3BhdGg7CisJYm9vbCBpc19kZnNfcmVmZmVyZWFsID0gZmFsc2U7CiAKIAlwVGNvbiA9IGNpZnNf c2ItPnRjb247CiAJY0ZZSSgxLCAoIkdldHRpbmcgaW5mbyBvbiAlcyIsIHNlYXJjaF9wYXRoKSk7 CisKKwlmdWxsX3BhdGggPSBjaWZzX2dldF9zZWFyY2hfcGF0aChwVGNvbiwgc2VhcmNoX3BhdGgp OworCit0cnlfYWdhaW5fQ0lGU1NNQlVuaXhRUGF0aEluZm86CiAJLyogY291bGQgaGF2ZSBkb25l IGEgZmluZCBmaXJzdCBpbnN0ZWFkIGJ1dCB0aGlzIHJldHVybnMgbW9yZSBpbmZvICovCi0JcmMg PSBDSUZTU01CVW5peFFQYXRoSW5mbyh4aWQsIHBUY29uLCBzZWFyY2hfcGF0aCwgJmZpbmREYXRh LAorCXJjID0gQ0lGU1NNQlVuaXhRUGF0aEluZm8oeGlkLCBwVGNvbiwgZnVsbF9wYXRoLCAmZmlu ZERhdGEsCiAJCQkJICBjaWZzX3NiLT5sb2NhbF9ubHMsIGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdz ICYKIAkJCQkJQ0lGU19NT1VOVF9NQVBfU1BFQ0lBTF9DSFIpOwogLyoJZHVtcF9tZW0oIlxuVW5p eFFQYXRoSW5mbyByZXR1cm4gZGF0YSIsICZmaW5kRGF0YSwKIAkJIHNpemVvZihmaW5kRGF0YSkp OyAqLwogCWlmIChyYykgewotCQlpZiAocmMgPT0gLUVSRU1PVEUpIHsKLQkJCXRtcF9wYXRoID0K LQkJCSAgICBrbWFsbG9jKHN0cm5sZW4ocFRjb24tPnRyZWVOYW1lLAotCQkJCQkgICAgTUFYX1RS RUVfU0laRSArIDEpICsKLQkJCQkgICAgc3RybmxlbihzZWFyY2hfcGF0aCwgTUFYX1BBVEhDT05G KSArIDEsCi0JCQkJICAgIEdGUF9LRVJORUwpOwotCQkJaWYgKHRtcF9wYXRoID09IE5VTEwpCi0J CQkJcmV0dXJuIC1FTk9NRU07Ci0KLQkJCS8qIGhhdmUgdG8gc2tpcCBmaXJzdCBvZiB0aGUgZG91 YmxlIGJhY2tzbGFzaCBvZgotCQkJICAgVU5DIG5hbWUgKi8KLQkJCXN0cm5jcHkodG1wX3BhdGgs IHBUY29uLT50cmVlTmFtZSwgTUFYX1RSRUVfU0laRSk7Ci0JCQlzdHJuY2F0KHRtcF9wYXRoLCBz ZWFyY2hfcGF0aCwgTUFYX1BBVEhDT05GKTsKLQkJCXJjID0gY29ubmVjdF90b19kZnNfcGF0aCh4 aWQsIHBUY29uLT5zZXMsCi0JCQkJCQkgLyogdHJlZW5hbWUgKyAqLyB0bXBfcGF0aCwKLQkJCQkJ CSBjaWZzX3NiLT5sb2NhbF9ubHMsCi0JCQkJCQkgY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJgot CQkJCQkJICAgIENJRlNfTU9VTlRfTUFQX1NQRUNJQUxfQ0hSKTsKLQkJCWtmcmVlKHRtcF9wYXRo KTsKLQotCQkJLyogQkIgZml4IHVwIGlub2RlIGV0Yy4gKi8KLQkJfSBlbHNlIGlmIChyYykgewot CQkJcmV0dXJuIHJjOworCQlpZiAocmMgPT0gLUVSRU1PVEUgJiYgIWlzX2Rmc19yZWZmZXJlYWwp IHsKKwkJCWlzX2Rmc19yZWZmZXJlYWwgPSB0cnVlOworCQkJZnVsbF9wYXRoID0gc2VhcmNoX3Bh dGg7CisJCQlnb3RvIHRyeV9hZ2Fpbl9DSUZTU01CVW5peFFQYXRoSW5mbzsKIAkJfQorCQlnb3Rv IGNnaWl1X2V4aXQ7CiAJfSBlbHNlIHsKIAkJc3RydWN0IGNpZnNJbm9kZUluZm8gKmNpZnNJbmZv OwogCQlfX3U2NCBudW1fb2ZfYnl0ZXMgPSBsZTY0X3RvX2NwdShmaW5kRGF0YS5OdW1PZkJ5dGVz KTsKQEAgLTIwNCw4ICsyMTksMTAgQEAgaW50IGNpZnNfZ2V0X2lub2RlX2luZm9fdW5peChzdHJ1 Y3QgaW5vZGUgKipwaW5vZGUsCiAJCS8qIGdldCBuZXcgaW5vZGUgKi8KIAkJaWYgKCpwaW5vZGUg PT0gTlVMTCkgewogCQkJKnBpbm9kZSA9IG5ld19pbm9kZShzYik7Ci0JCQlpZiAoKnBpbm9kZSA9 PSBOVUxMKQotCQkJCXJldHVybiAtRU5PTUVNOworCQkJaWYgKCpwaW5vZGUgPT0gTlVMTCkgewor CQkJCXJjID0gLUVOT01FTTsKKwkJCQlnb3RvIGNnaWl1X2V4aXQ7CisJCQl9CiAJCQkvKiBJcyBh biBpX2lubyBvZiB6ZXJvIGxlZ2FsPyAqLwogCQkJLyogQXJlIHRoZXJlIHNhbml0eSBjaGVja3Mg d2UgY2FuIHVzZSB0byBlbnN1cmUgdGhhdAogCQkJICAgdGhlIHNlcnZlciBpcyByZWFsbHkgZmls bGluZyBpbiB0aGF0IGZpZWxkPyAqLwpAQCAtMjM3LDggKzI1NCwxMSBAQCBpbnQgY2lmc19nZXRf aW5vZGVfaW5mb191bml4KHN0cnVjdCBpbm9kZSAqKnBpbm9kZSwKIAkJCSh1bnNpZ25lZCBsb25n KSBpbm9kZS0+aV9zaXplLAogCQkJKHVuc2lnbmVkIGxvbmcgbG9uZylpbm9kZS0+aV9ibG9ja3Mp KTsKIAotCQljaWZzX3NldF9vcHMoaW5vZGUpOworCQljaWZzX3NldF9vcHMoaW5vZGUsIGlzX2Rm c19yZWZmZXJlYWwpOwogCX0KK2NnaWl1X2V4aXQ6CisJaWYgKGZ1bGxfcGF0aCAhPSBzZWFyY2hf cGF0aCkKKwkJa2ZyZWUoZnVsbF9wYXRoKTsKIAlyZXR1cm4gcmM7CiB9CiAKQEAgLTM1Myw5ICsz NzMsMTAgQEAgaW50IGNpZnNfZ2V0X2lub2RlX2luZm8oc3RydWN0IGlub2RlICoqcGlub2RlLAog CXN0cnVjdCBjaWZzVGNvbkluZm8gKnBUY29uOwogCXN0cnVjdCBpbm9kZSAqaW5vZGU7CiAJc3Ry dWN0IGNpZnNfc2JfaW5mbyAqY2lmc19zYiA9IENJRlNfU0Ioc2IpOwotCWNoYXIgKnRtcF9wYXRo OworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmZ1bGxfcGF0aDsKIAljaGFyICpidWYgPSBOVUxMOwog CWludCBhZGp1c3RUWiA9IEZBTFNFOworCWJvb2wgaXNfZGZzX3JlZmZlcmVhbCA9IGZhbHNlOwog CiAJcFRjb24gPSBjaWZzX3NiLT50Y29uOwogCWNGWUkoMSwgKCJHZXR0aW5nIGluZm8gb24gJXMi LCBzZWFyY2hfcGF0aCkpOwpAQCAtMzczLDggKzM5NCwxMiBAQCBpbnQgY2lmc19nZXRfaW5vZGVf aW5mbyhzdHJ1Y3QgaW5vZGUgKipwaW5vZGUsCiAJCWlmIChidWYgPT0gTlVMTCkKIAkJCXJldHVy biAtRU5PTUVNOwogCQlwZmluZERhdGEgPSAoRklMRV9BTExfSU5GTyAqKWJ1ZjsKKworCQlmdWxs X3BhdGggPSBjaWZzX2dldF9zZWFyY2hfcGF0aChwVGNvbiwgc2VhcmNoX3BhdGgpOworCit0cnlf YWdhaW5fQ0lGU1NNQlFQYXRoSW5mbzoKIAkJLyogY291bGQgZG8gZmluZCBmaXJzdCBpbnN0ZWFk IGJ1dCB0aGlzIHJldHVybnMgbW9yZSBpbmZvICovCi0JCXJjID0gQ0lGU1NNQlFQYXRoSW5mbyh4 aWQsIHBUY29uLCBzZWFyY2hfcGF0aCwgcGZpbmREYXRhLAorCQlyYyA9IENJRlNTTUJRUGF0aElu Zm8oeGlkLCBwVGNvbiwgZnVsbF9wYXRoLCBwZmluZERhdGEsCiAJCQkgICAgICAwIC8qIG5vdCBs ZWdhY3kgKi8sCiAJCQkgICAgICBjaWZzX3NiLT5sb2NhbF9ubHMsIGNpZnNfc2ItPm1udF9jaWZz X2ZsYWdzICYKIAkJCQlDSUZTX01PVU5UX01BUF9TUEVDSUFMX0NIUik7CkBAIC0zODIsNyArNDA3 LDcgQEAgaW50IGNpZnNfZ2V0X2lub2RlX2luZm8oc3RydWN0IGlub2RlICoqcGlub2RlLAogCQl3 aGVuIHNlcnZlciBjbGFpbXMgbm8gTlQgU01CIHN1cHBvcnQgYW5kIHRoZSBhYm92ZSBjYWxsCiAJ CWZhaWxlZCBhdCBsZWFzdCBvbmNlIC0gc2V0IGZsYWcgaW4gdGNvbiBvciBtb3VudCAqLwogCQlp ZiAoKHJjID09IC1FT1BOT1RTVVBQKSB8fCAocmMgPT0gLUVJTlZBTCkpIHsKLQkJCXJjID0gU01C UXVlcnlJbmZvcm1hdGlvbih4aWQsIHBUY29uLCBzZWFyY2hfcGF0aCwKKwkJCXJjID0gU01CUXVl cnlJbmZvcm1hdGlvbih4aWQsIHBUY29uLCBmdWxsX3BhdGgsCiAJCQkJCXBmaW5kRGF0YSwgY2lm c19zYi0+bG9jYWxfbmxzLAogCQkJCQljaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmCiAJCQkJCSAg Q0lGU19NT1VOVF9NQVBfU1BFQ0lBTF9DSFIpOwpAQCAtMzkxLDMxICs0MTYsMTIgQEAgaW50IGNp ZnNfZ2V0X2lub2RlX2luZm8oc3RydWN0IGlub2RlICoqcGlub2RlLAogCX0KIAkvKiBkdW1wX21l bSgiXG5RUGF0aEluZm8gcmV0dXJuIGRhdGEiLCZmaW5kRGF0YSwgc2l6ZW9mKGZpbmREYXRhKSk7 ICovCiAJaWYgKHJjKSB7Ci0JCWlmIChyYyA9PSAtRVJFTU9URSkgewotCQkJdG1wX3BhdGggPQot CQkJICAgIGttYWxsb2Moc3RybmxlbgotCQkJCSAgICAocFRjb24tPnRyZWVOYW1lLAotCQkJCSAg ICAgTUFYX1RSRUVfU0laRSArIDEpICsKLQkJCQkgICAgc3RybmxlbihzZWFyY2hfcGF0aCwgTUFY X1BBVEhDT05GKSArIDEsCi0JCQkJICAgIEdGUF9LRVJORUwpOwotCQkJaWYgKHRtcF9wYXRoID09 IE5VTEwpIHsKLQkJCQlrZnJlZShidWYpOwotCQkJCXJldHVybiAtRU5PTUVNOwotCQkJfQotCi0J CQlzdHJuY3B5KHRtcF9wYXRoLCBwVGNvbi0+dHJlZU5hbWUsIE1BWF9UUkVFX1NJWkUpOwotCQkJ c3RybmNhdCh0bXBfcGF0aCwgc2VhcmNoX3BhdGgsIE1BWF9QQVRIQ09ORik7Ci0JCQlyYyA9IGNv bm5lY3RfdG9fZGZzX3BhdGgoeGlkLCBwVGNvbi0+c2VzLAotCQkJCQkJIC8qIHRyZWVuYW1lICsg Ki8gdG1wX3BhdGgsCi0JCQkJCQkgY2lmc19zYi0+bG9jYWxfbmxzLAotCQkJCQkJIGNpZnNfc2It Pm1udF9jaWZzX2ZsYWdzICYKLQkJCQkJCSAgIENJRlNfTU9VTlRfTUFQX1NQRUNJQUxfQ0hSKTsK LQkJCWtmcmVlKHRtcF9wYXRoKTsKLQkJCS8qIEJCIGZpeCB1cCBpbm9kZSBldGMuICovCi0JCX0g ZWxzZSBpZiAocmMpIHsKLQkJCWtmcmVlKGJ1Zik7Ci0JCQlyZXR1cm4gcmM7CisJCWlmIChyYyA9 PSAtRVJFTU9URSAmJiAhaXNfZGZzX3JlZmZlcmVhbCkgeworCQkJaXNfZGZzX3JlZmZlcmVhbCA9 IHRydWU7CisJCQlmdWxsX3BhdGggPSBzZWFyY2hfcGF0aDsKKwkJCWdvdG8gdHJ5X2FnYWluX0NJ RlNTTUJRUGF0aEluZm87CiAJCX0KKwkJZ290byBjZ2lpX2V4aXQ7CiAJfSBlbHNlIHsKIAkJc3Ry dWN0IGNpZnNJbm9kZUluZm8gKmNpZnNJbmZvOwogCQlfX3UzMiBhdHRyID0gbGUzMl90b19jcHUo cGZpbmREYXRhLT5BdHRyaWJ1dGVzKTsKQEAgLTQyNCw4ICs0MzAsOCBAQCBpbnQgY2lmc19nZXRf aW5vZGVfaW5mbyhzdHJ1Y3QgaW5vZGUgKipwaW5vZGUsCiAJCWlmICgqcGlub2RlID09IE5VTEwp IHsKIAkJCSpwaW5vZGUgPSBuZXdfaW5vZGUoc2IpOwogCQkJaWYgKCpwaW5vZGUgPT0gTlVMTCkg ewotCQkJCWtmcmVlKGJ1Zik7Ci0JCQkJcmV0dXJuIC1FTk9NRU07CisJCQkJcmMgPSAtRU5PTUVN OworCQkJCWdvdG8gY2dpaV9leGl0OwogCQkJfQogCQkJLyogSXMgYW4gaV9pbm8gb2YgemVybyBs ZWdhbD8gQ2FuIHdlIHVzZSB0aGF0IHRvIGNoZWNrCiAJCQkgICBpZiB0aGUgc2VydmVyIHN1cHBv cnRzIHJldHVybmluZyBpbm9kZSBudW1iZXJzPyAgQXJlCkBAIC01NzMsOCArNTc5LDExIEBAIGlu dCBjaWZzX2dldF9pbm9kZV9pbmZvKHN0cnVjdCBpbm9kZSAqKnBpbm9kZSwKIAkJCWF0b21pY19z ZXQoJmNpZnNJbmZvLT5pblVzZSwgMSk7CiAJCX0KIAotCQljaWZzX3NldF9vcHMoaW5vZGUpOwor CQljaWZzX3NldF9vcHMoaW5vZGUsIGlzX2Rmc19yZWZmZXJlYWwpOwogCX0KK2NnaWlfZXhpdDoK KwlpZiAoZnVsbF9wYXRoICE9IHNlYXJjaF9wYXRoKQorCQlrZnJlZShmdWxsX3BhdGgpOwogCWtm cmVlKGJ1Zik7CiAJcmV0dXJuIHJjOwogfQpAQCAtODA0LDcgKzgxMyw3IEBAIHN0YXRpYyB2b2lk IHBvc2l4X2ZpbGxfaW5faW5vZGUoc3RydWN0IGlub2RlICp0bXBfaW5vZGUsCiAJbG9jYWxfc2l6 ZSAgPSB0bXBfaW5vZGUtPmlfc2l6ZTsKIAogCWNpZnNfdW5peF9pbmZvX3RvX2lub2RlKHRtcF9p bm9kZSwgcERhdGEsIDEpOwotCWNpZnNfc2V0X29wcyh0bXBfaW5vZGUpOworCWNpZnNfc2V0X29w cyh0bXBfaW5vZGUsIGZhbHNlKTsKIAogCWlmICghU19JU1JFRyh0bXBfaW5vZGUtPmlfbW9kZSkp CiAJCXJldHVybjsKLS0gCjEuNS4zLjIKCg== ------=_Part_2284_32216394.1205014873149 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ linux-cifs-client mailing list linux-cifs-client@lists.samba.org https://lists.samba.org/mailman/listinfo/linux-cifs-client ------=_Part_2284_32216394.1205014873149--