Back port vl's fix for nlink counts.
authorJeremy Allison <jra@samba.org>
Sat, 19 Jan 2008 01:57:31 +0000 (17:57 -0800)
committerJeremy Allison <jra@samba.org>
Sat, 19 Jan 2008 01:57:31 +0000 (17:57 -0800)
Jeremy.

source/smbd/trans2.c

index 0d9dac3e5f6991a4ac6cfbc799261c14381570cc..5464ef2ed01dfb6b92fbb75e227b3529fea9f3ff 100644 (file)
@@ -3301,11 +3301,6 @@ static int call_trans2qfilepathinfo(connection_struct *conn, char *inbuf, char *
 
        nlink = sbuf.st_nlink;
 
-       if ((nlink > 0) && S_ISDIR(sbuf.st_mode)) {
-               /* NTFS does not seem to count ".." */
-               nlink -= 1;
-       }
-
        if ((nlink > 0) && delete_pending) {
                nlink -= 1;
        }
@@ -3565,7 +3560,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
                        data_size = 24;
                        SOFF_T(pdata,0,allocation_size);
                        SOFF_T(pdata,8,file_size);
-                       SIVAL(pdata,16,nlink);
+                       SIVAL(pdata,16,(mode&aDIR)?1:nlink);
                        SCVAL(pdata,20,delete_pending?1:0);
                        SCVAL(pdata,21,(mode&aDIR)?1:0);
                        SSVAL(pdata,22,0); /* Padding. */
@@ -3637,7 +3632,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
                        pdata += 40;
                        SOFF_T(pdata,0,allocation_size);
                        SOFF_T(pdata,8,file_size);
-                       SIVAL(pdata,16,nlink);
+                       SIVAL(pdata,16,(mode&aDIR)?1:nlink);
                        SCVAL(pdata,20,delete_pending);
                        SCVAL(pdata,21,(mode&aDIR)?1:0);
                        SSVAL(pdata,22,0);