diff --git a/fs/cifs/ioctl.c b/fs/cifs/ioctl.c
index b4b8e20..7b84b2b 100644
--- a/fs/cifs/ioctl.c
+++ b/fs/cifs/ioctl.c
@@ -20,6 +20,7 @@
  *   along with this library; if not, write to the Free Software
  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
+
 #include <linux/fs.h>
 #include <linux/ext2_fs.h>
 #include "cifspdu.h"
@@ -32,18 +33,63 @@
 {
 	int rc = -ENOTTY; /* strange error - but the precedent */
 #ifdef CONFIG_CIFS_POSIX
+	__u64	ExtAttrBits = 0;
+	__u64	ExtAttrMask = 0;
+	__u64   caps;
+#endif /* CONFIG_CIFS_POSIX */
+	int xid;
+	struct cifs_sb_info *cifs_sb;
+	struct cifsTconInfo *tcon;
+	struct cifsFileInfo *pSMBFile =
+		(struct cifsFileInfo *)filep->private_data;
+
+	xid = GetXid();
+
+	cifs_sb = CIFS_SB(inode->i_sb);
+	tcon = cifs_sb->tcon;
+	if (pSMBFile == NULL)
+		goto cifs_ioctl_out;
+
+#ifdef CONFIG_CIFS_POSIX
+	if(tcon)
+		caps = le64_to_cpu(tcon->fsUnixInfo.Capability);
+	else {
+		rc = -EIO;
+		goto cifs_ioctl_out;
+	}
+
 	cFYI(1,("ioctl file %p  cmd %u  arg %lu",filep,command,arg));
 	switch(command) {
 		case EXT2_IOC_GETFLAGS:
-			cFYI(1,("get flags not implemented yet"));
-			return -EOPNOTSUPP;
+			if(CIFS_UNIX_EXTATTR_CAP & caps) {
+				rc = CIFSGetExtAttr(xid, tcon, pSMBFile->netfid,
+					&ExtAttrBits, &ExtAttrMask);
+				if(rc == 0)
+					rc = put_user(ExtAttrBits &
+						EXT2_FL_USER_VISIBLE,
+						(int __user *)arg);
+			}
+			break;
+
 		case EXT2_IOC_SETFLAGS:
+			if(CIFS_UNIX_EXTATTR_CAP & caps) {
+				if(get_user(ExtAttrBits,(int __user *)arg)) {
+					rc = -EFAULT;
+					goto cifs_ioctl_out;
+				}
+			  /* rc = CIFSGetExtAttr(xid, tcon, pSMBFile->netfid,
+					extAttrBits, &ExtAttrMask);*/
+				
+			}
 			cFYI(1,("set flags not implemented yet"));
-			return -EOPNOTSUPP;
+			break;
 		default:
 			cFYI(1,("unsupported ioctl"));
 			return rc;
 	}
 #endif /* CONFIG_CIFS_POSIX */
+
+cifs_ioctl_out:
+	FreeXid(xid);
 	return rc;
 } 
